2012-07-26 143 views

回答

11
 
if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(successFunction, errorFunction); 
} else { 
    alert('It seems like Geolocation, which is required for this page, is not enabled in your browser. Please use a browser which supports it.'); 
} 

如果浏览器支持地理位置,并且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这里

+0

感谢您的回复!一切工作正常:) – flyleaf 2012-07-30 07:50:05

+0

你在哪里调用successFunction()? – Gino 2015-05-26 18:03:59

1

退房Gisgraphy免费的开源地理服务。

每个人都会告诉您使用Google Maps API,但请阅读terms of use

(g)没有谷歌地图的内容没有使用。除非您通过Google的书面许可,在地图API文档或 中明确允许您使用 ,否则您不得使用或 显示没有相应Google地图的内容。无论如何,您不得使用 或在非Google地图上或与其一起显示内容。例如,对于 示例,您不得将 通过服务获得的地理编码与非Google地图一起使用。作为另一个示例,您不得在显示街景视图图像的同时显示非Google地图,但您可能会 显示没有相应Google地图的街景视图图像,因为012xxMaps APIs文档明确允许您这样做。

所以用谷歌API你必须使用谷歌地图。所以,如果你需要一张地图,你确定。

+0

感谢您的回复! – flyleaf 2012-07-30 07:50:45

0

它将帮助,如果我可以使用HTML5地理位置

那么获取经纬度,然后只是做正是 - 正是是你的问题呢?

这就是getCurrentPosition methodis for

+0

感谢您的回复!这有助于很多! – flyleaf 2012-07-30 07:51:24

0

Flyleaf,我在工作我们也提供了一个API来获取地址的坐标;它叫做LiveAddress API

正如巴特所说,谷歌的TOS不会允许您在未显示Google地图的情况下进行地理编码,更重要的是您无法存储结果。如果您希望按照您的建议找到地址,我推荐了一些类似LiveAddress的地址,它实际上也会验证地址的有效性 - 这些其他API和HTML5不会这样做。

希望你找到适合你的东西。现在的问题有点含糊,但也许这会有所帮助。它可能会去像这样(with Javascript):

LiveAddress.geocode(address, function(geo) { 
    alert("The address is at: " + geo.coords); 
}); 
+0

SmartyStreets仅限美国吗?还是您也支持欧洲?该API无法在荷兰找到我的地址。 – 2012-07-27 15:10:27

+0

这是美国的,但它真的*擅长美国地址。 :)对于国际性案例,我们建议通过LiveAddress发送美国地址,或者通过您选择的其他API发送美国地址,但是要认识到大多数API不会真正验证国际地址的可送达性/有效性。 – Matt 2012-07-27 16:39:30

+0

@flyleaf SmartyStreets现在做国际地址验证 – camiblanch 2015-08-12 16:36:51

1

我发现最好的选择是直接通过一个子项目使用OpenStreetMapNominatim)API他们。

API documentation

REST电话:http://nominatim.openstreetmap.org/reverse?format=xml&lat=35.958&lon=-83.952&zoom=18

注意的是,虽然他们的服务条款并允许从浏览器的JavaScript直接客户端使用,他们不希望大批量使用,并使用你的服务器建议作为添加缓存的代理,因此可以轻松切换。数据可供下载,并提供了有关设置本地查询数据的数据库的说明。

+0

太棒了,谢谢你。一直在寻找一个很好的免费看起来,因为得到经纬度很容易:) – 2014-02-07 16:12:04

相关问题