【问题标题】:Get latitude / longitude / Reverse Geocoding without displaying maps在不显示地图的情况下获取纬度/经度/反向地理编码
【发布时间】:2011-11-27 03:50:19
【问题描述】:

使用网站,我试图捕捉用户的纬度/经度点,并据此获取他的当前地址。

我可以使用 Google Maps API 做到这一点:地理定位和反向地理编码。但是,我的要求是在不显示地图的情况下获取这些信息。据我所知,谷歌地图使用条款禁止这样的事情。

谁能告诉我是否有任何其他服务可以在不显示地图的情况下达到我的目的,或者谷歌地图是否允许这样的事情?我不确定 Bing 和 Yahoo。

编辑: 在页面加载时,我需要获取用户的纬度和经度,并基于该获取地址信息。我打算使用此地址信息来显示附近的位置/要访问的地方。我必须在不显示任何地图的情况下实现这一点。

【问题讨论】:

    标签: google-maps geolocation


    【解决方案1】:

    Yahoo PlaceFinder 做到了。如果通过location参数和gflags=R中的经纬度,应该返回地址数据。

    你必须获得一个 Yahoo APP id,但它是免费的,而且很容易设置。

    编辑:我看到你也想做地理定位,如果你不能使用谷歌,我会调查 html5 地理定位,或者使用 freegeoip.net 通过 IP 地址进行地理定位。

    【讨论】:

    • 感谢 Dave 的快速响应。因此,我假设在不显示在任何地图上的情况下获取地址数据是合法的。另外,我从哪里获得纬度和经度信息?来自同一个 API?我关心的是在不违反使用条款政策的情况下做事。
    • @johnk1 我以为你已经有了 lon 和 lat?你从什么开始?是的,我不是律师,但我相当肯定你不需要做任何特别的事情来使用它。 (我没有显示地图!)
    • 对不起,如果我让你感到困惑,但我在第一行提到了问题。我是这样开始的:用户在桌面浏览器上点击网站 url。现在我需要检测用户的位置 [纬度/经度] 并使用这些获取他的地址信息,然后我可以使用它来显示附近的位置以访问。希望你明白我的意思
    • @johnk 我看到您正在尝试进行地理定位!是的,我认为每个人都完全错过了这一点,您可能想编辑您的问题。我会更新我的答案。
    【解决方案2】:

    我不知道我是不是看错了这篇文章,但如果你读到这个:

    (viii) 存储或允许最终用户存储来自 Yahoo! 的地图图像、地图数据或地理编码位置信息供将来使用的 Maps API;

    (ix) 将独立地理编码器用于显示 Yahoo! 以外的任何用途Yahoo! 上的地图或显示点地图;

    这意味着如果没有地图,您将无法存储或使用信息。 所以google api和yahoo api都需要有地图...

    注意-我从 yahoo 的条款中获取这些信息:http://info.yahoo.com/legal/us/yahoo/maps/mapsapi/mapsapi-2141.html

    编辑 - 现在我正在尝试使用 http://www.geonames.org/export/reverse-geocoding.html 这很简单,而且对我来说效果很好。我只需要城市,也许还需要一个邮政编码。

    【讨论】:

      【解决方案3】:

      我不认为雅虎要求你展示地图,而且它也有更高的配额。 http://developer.yahoo.com/geo/placefinder/

      【讨论】:

      • 但是我可以使用这个 API 检测用户的位置 [纬度/经度] 吗?
      • 欢迎来到 Stack Overflow!虽然这在理论上可以回答问题,it would be preferable 在此处包含答案的基本部分,并提供链接以供参考。
      【解决方案4】:

      有许多地理定位 API - 这里有一个非常好的:

      https://geoip.nekudo.com/

      您只需向

      发出 GET 请求

      http://geoip.nekudo.com/api/{ip}/{language}/{type}

      其中 ip、语言和类型是可选的。

      例如在 Angular 5 中,使用 HttpClient:

      this.http.get('http://geoip.nekudo.com/api/') .subscribe(

      data => { console.log('SUCCESS! Your coords are lat:', data.location.latitude, 'long:', data.location.longitude); }, error => { console.log('ERROR!', error); } );

      另外,请注意,geoip 服务是用 PHP 和开源 (https://github.com/nekudo/shiny_geoip) 编写的,因此您可以自己实现以减少第三方依赖。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-10
        • 1970-01-01
        相关资源
        最近更新 更多