【发布时间】:2012-07-24 22:53:02
【问题描述】:
我对一个问题感到困惑,即我可以从 Facebook 获取用户的位置,而我只需要获取该位置的纬度和经度,但我仍然找不到解决方案。
如果我可以使用 HTML5 地理位置或任何 Google API 获得该纬度和经度,这将有所帮助。解决办法是什么?
【问题讨论】:
标签: javascript html geolocation latitude-longitude
我对一个问题感到困惑,即我可以从 Facebook 获取用户的位置,而我只需要获取该位置的纬度和经度,但我仍然找不到解决方案。
如果我可以使用 HTML5 地理位置或任何 Google API 获得该纬度和经度,这将有所帮助。解决办法是什么?
【问题讨论】:
标签: javascript html geolocation latitude-longitude
Flyleaf,我在 SmartyStreets 工作,我们还提供 API 来获取地址坐标;它叫做LiveAddress API。
正如 Bart 所说,Google 的 TOS 不允许您在不显示 Google 地图的情况下进行地理编码,而且您无法存储结果。如果您希望按照您的建议查找 address,我推荐使用 LiveAddress 之类的方法,它实际上也可以验证地址的有效性——这些其他 API 和 HTML5 不会这样做。
希望你能找到适合你的东西。现在的问题有点模糊,但也许这会有所帮助。它可能会变成这样 (with Javascript):
LiveAddress.geocode(address, function(geo) {
alert("The address is at: " + geo.coords);
});
【讨论】:
我发现最好的选择是通过他们拥有的子项目 (Nominatim) API 直接使用 OpenStreetMap。
例如REST 呼叫:http://nominatim.openstreetmap.org/reverse?format=xml&lat=35.958&lon=-83.952&zoom=18
请注意,虽然他们的服务条款确实允许从浏览器 JavaScript 直接在客户端使用,但他们不希望大量使用并建议使用您的服务器作为代理来添加缓存,因此可以轻松切换。数据可供下载,并提供了设置本地可查询数据数据库的说明。
【讨论】:
【讨论】:
如果浏览器支持地理定位并且getCurrentPosition 运行成功,则调用成功函数。然后在函数successFunction
有
function successFunction(position) {
var lat = position.coords.latitude;
var long = position.coords.longitude;
console.log('Your latitude is :'+lat+' and longitude is '+long);
}
在此处阅读有关 Geolocation API 的更多信息
【讨论】:
查看Gisgraphy 一个免费的开源地理服务。
每个人都会告诉您使用 Google Maps API,但请阅读terms of use。
(g) 不得使用没有 Google 地图的内容。您不得使用或 在没有相应 Google 地图的情况下显示内容,除非您是 在 Maps API 文档中明确允许这样做,或者 通过 Google 的书面许可。在任何情况下,您都不得使用 或在非谷歌地图上或与非谷歌地图一起显示内容。为了 例如,您不得使用通过服务获得的地理编码 结合非谷歌地图。再举一个例子,你不能 在非 Google 地图旁边显示街景图像,但您可以 在没有相应 Google 地图的情况下显示街景图像,因为 Maps API 文档明确允许您这样做。
因此,对于 Google API,您必须使用 Google 地图。所以如果你需要一张地图就可以了。
【讨论】: