【问题标题】:How do I get an addresses latitude-longitude using HTML5 geolocation or Google API?如何使用 HTML5 地理位置或 Google API 获取地址经纬度?
【发布时间】:2012-07-24 22:53:02
【问题描述】:

我对一个问题感到困惑,即我可以从 Facebook 获取用户的位置,而我只需要获取该位置的纬度和经度,但我仍然找不到解决方案。

如果我可以使用 HTML5 地理位置或任何 Google API 获得该纬度和经度,这将有所帮助。解决办法是什么?

【问题讨论】:

    标签: javascript html geolocation latitude-longitude


    【解决方案1】:

    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);
    });
    

    【讨论】:

    • SmartyStreets 只支持美国还是您也支持欧洲? API 无法找到我在荷兰的地址。
    • 仅限美国,但它真的擅长美国地址。 :) 对于国际情况,我们建议通过 LiveAddress 发送美国地址,或通过您选择的其他 API 发送任何其他地址,但要意识到大多数 API 实际上不会验证国际地址的可交付性/有效性。
    • @flyleaf SmartyStreets 现在进行国际地址验证
    【解决方案2】:

    我发现最好的选择是通过他们拥有的子项目 (Nominatim) API 直接使用 OpenStreetMap

    API documentation

    例如REST 呼叫:http://nominatim.openstreetmap.org/reverse?format=xml&lat=35.958&lon=-83.952&zoom=18

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

    【讨论】:

      【解决方案3】:

      如果我可以使用 HTML5 地理位置获得该纬度和经度,这将有所帮助

      好吧,那就照着做吧——你的问题到底出在哪里?

      这就是getCurrentPosition methodis for

      【讨论】:

        【解决方案4】:
        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);
        }
        

        在此处阅读有关 Geolocation API 的更多信息

        【讨论】:

        • 你在哪里调用 successFunction() ?
        【解决方案5】:

        查看Gisgraphy 一个免费的开源地理服务。

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

        (g) 不得使用没有 Google 地图的内容。您不得使用或 在没有相应 Google 地图的情况下显示内容,除非您是 在 Maps API 文档中明确允许这样做,或者 通过 Google 的书面许可。在任何情况下,您都不得使用 或在非谷歌地图上或与非谷歌地图一起显示内容。为了 例如,您不得使用通过服务获得的地理编码 结合非谷歌地图。再举一个例子,你不能 在非 Google 地图旁边显示街景图像,但您可以 在没有相应 Google 地图的情况下显示街景图像,因为 Maps API 文档明确允许您这样做。

        因此,对于 Google API,您必须使用 Google 地图。所以如果你需要一张地图就可以了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-02-26
          • 1970-01-01
          • 2012-02-22
          • 2014-01-21
          • 2015-12-06
          • 1970-01-01
          • 2016-10-27
          相关资源
          最近更新 更多