我对一个问题感到困惑,即我可以从 Facebook 获取用户的位置,而我只需要获取该位置的纬度和经度,但我仍然找不到解决方案。
如果我可以使用 HTML5 地理位置或任何 Google API 获得该纬度和经度,这将有所帮助。解决办法是什么?
我对一个问题感到困惑,即我可以从 Facebook 获取用户的位置,而我只需要获取该位置的纬度和经度,但我仍然找不到解决方案。
如果我可以使用 HTML5 地理位置或任何 Google API 获得该纬度和经度,这将有所帮助。解决办法是什么?
if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(successFunction, errorFunction); } 别的 { alert('您的浏览器似乎没有启用此页面所需的地理定位功能。请使用支持它的浏览器。'); }
如果浏览器支持地理定位并且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);
}
在此处阅读有关地理位置 API 的更多信息
Flyleaf,我在SmartyStreets工作,我们还提供 API 来获取地址坐标;它被称为LiveAddress API。
正如 Bart 提到的,Google 的 TOS 不允许您在不显示 Google Map 的情况下进行地理编码,而且您无法存储结果。如果您希望按照您的建议查找地址,我建议使用 LiveAddress 之类的方法,它实际上也可以验证地址的有效性——这些其他 API 和 HTML5 不会这样做。
希望你能找到适合你的东西。现在的问题有点模糊,但也许这会有所帮助。它可能会像这样(使用 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 直接客户端使用,但他们不希望大量使用并建议使用您的服务器作为代理来添加缓存,因此可以轻松切换。数据可供下载,并提供了设置本地可查询数据数据库的说明。
查看Gisgraphy一个免费的开源地理服务。
每个人都会告诉您使用 Google Maps API,但请阅读使用条款。
(g) 不得使用没有 Google 地图的内容。您不得在没有相应 Google 地图的情况下使用或显示内容,除非 Maps API 文档明确允许您这样做,或获得 Google 的书面许可。在任何情况下,您都不得在非谷歌地图上或与非谷歌地图一起使用或显示内容。例如,您不得将通过服务获得的地理编码与非 Google 地图结合使用。再举一个例子,您不得在非 Google 地图旁边显示街景图像,但您可以在没有相应 Google 地图的情况下显示街景图像,因为 Maps API 文档明确允许您这样做。
因此,对于 Google API,您必须使用 Google Map。所以如果你需要一张地图,你就可以了。