2

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

<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/作为测试,我还有一个字段,该字段将以城镇/城市的形式填充用户位置。这样用户就可以看到他们当前发布的位置,如果错误,则允许他们更改并更新坐标(请注意,这只会获得中心位置,而不是我们将获得的实际位置只是在寻找他们进入的城镇)。

我正在寻找使用 Google Maps API 来计算用户位置。

为了澄清我想要构建的内容:

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

2.) 使用此位置值或地理位置,我们将为用户获取坐标,然后将它们插入隐藏字段。

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

任何人都可以帮忙吗?谢谢

4

2 回答 2

1

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

于 2012-09-09T21:18:41.373 回答
0

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

于 2012-09-09T21:31:38.200 回答