获取用户位置并将坐标保存在数据库中

Get users location and saving coordinates in database

本文关键字:保存 存在 数据库 坐标 用户 位置 获取      更新时间:2023-09-26

我在一个用户可以创建帖子的页面上有以下代码:

<script>
function getLocation()
{
    if (navigator.geolocation)
    {
        navigator.geolocation.getCurrentPosition(showPosition);
    }
}
function showPosition(position)
{
    $('input#latitude').val(position.coords.latitude);
    $('input#longitude').val(position.coords.longitude);    
}
getLocation();
</script>

这将使用用户坐标填充表单上的两个隐藏字段。这些坐标保存在帖子的数据库表中,这样帖子就可以显示在地图上,这样其他用户就可以看到它的发布位置。

但是,如果用户决定:A) 不共享他们的位置B) 使用不支持地理定位的浏览器

我将无法保存此信息,它将破坏应用程序的要点!

他们有更好的方法吗?当用户决定不共享他们的位置或没有地理位置时,如何处理这些问题?

到目前为止,我已经:http://dev.driz.co.uk/location/作为测试,我还有一个字段,该字段将以城镇/城市的形式填充用户位置。这是为了让用户可以看到他们当前发布的位置,如果错误,则允许他们更改并更新坐标(注意,这只会得到中心位置,而不是实际位置,因为我们只会搜索他们输入的城镇)。

我希望使用谷歌地图API来计算用户的位置。

澄清我想要构建的内容:

1.)用户表中的用户位置将填充页面上显示的字段。然后将使用Geolocation以其当前位置覆盖此项。如果他们没有这个或阻止它,那么它将只使用预先填充的文本。

2.)使用这个位置值或地理位置,我们将获得用户的坐标,然后将它们插入到隐藏字段中。

3.)如果用户认为位置错误,或者出于任何原因想将其更改为其他位置,则可以在框中键入该位置,然后单击更改按钮,该按钮将找到该位置的坐标。(如果找不到错误,则显示错误,并从用户位置使用预先填充的默认值,直到找到新的为止)。

有人能帮忙吗?感谢

是否只想在浏览器中执行此操作?如果不是,并且用户决定不共享他的位置,您可以使用Google Maps API中的GeoIP库和地理编码服务来估计后端的坐标。

我在http://ipinfodb.com/用于用户不接受或其浏览器不支持地理定位的情况。他们为各种语言提供了大量的示例代码,包括使用javascript直接访问API,我发现他们免费的API的限制和准确性对于流量适中的网站来说足够合理。