【问题标题】:How can I get google maps location names?如何获取谷歌地图位置名称?
【发布时间】:2012-09-18 03:26:40
【问题描述】:

我正在构建一个站点,需要在其中获取所有 google 地图位置,从国家名称到最小的村庄。这是api中的任何地方吗?因为它无处可寻。

【问题讨论】:

  • 听起来您正在寻找一种方法来抓取 Google 的所有数据,这将违反 Terms of Service。如果您只需要找到几个地理点的位置名称,那将是reverse geocoder 的应用程序。
  • 感谢您的快速回答。我正在寻找专门从 google api 获取国家和城市作为字符串。有什么办法吗?
  • 基于什么信息?纬度/经度坐标?视口/边界?
  • 这是个好问题。我很遗憾它被否决了。

标签: google-maps google-maps-api-3 geolocation


【解决方案1】:

如果您需要根据地理坐标(纬度和经度)在 Google Maps API v3 地图上与某个地点相关联的“名称”,请使用 reverse geocoder,它会返回该地点的多个级别的信息。

Example from the documentation

请注意,除了它不一定与 Google Maps API v3 磁贴相关之外,geonames.org 可能拥有您需要的信息或限制较少的服务来获取它。

【讨论】:

    【解决方案2】:

    您需要解析响应以获取该数据,例如,如果您想获取国家,结果是您通过调用反向 Gecoding 获得的结果对象: https://developers.google.com/maps/documentation/javascript/geocoding#ReverseGeocoding

    那么获取国家的函数是:

           function getCountry(results) {
             var geocoderAddressComponent,addressComponentTypes,address;
             for (var i in results) {
               geocoderAddressComponent = results[i].address_components;
               for (var j in geocoderAddressComponent) {
                 address = geocoderAddressComponent[j];
                 addressComponentTypes = geocoderAddressComponent[j].types;
                 for (var k in addressComponentTypes) {
                   if (addressComponentTypes[k] == 'country') {
                     return address;
                   }
                 }
               }
             }
            return 'Unknown';
          }
    

    【讨论】:

    • 通过少量调整,这正是我想要的工作!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2018-03-08
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    相关资源
    最近更新 更多