【问题标题】:Google Maps Address Components Geocoding vs Places API - Short vs Long NameGoogle Maps Address Components Geocoding vs Places API - 短名称与长名称
【发布时间】:2012-06-18 19:20:13
【问题描述】:

您好,GMaps API 开发人员。首先 - Google Maps/JS API v3 是多么令人难以置信的产品和服务 - 非常感谢!现在,带着那份重要的真诚感谢……

地址组件的short_namelong_name 选项是一个不错的功能,但是对于每个服务,这两个属性大多包含相同的值,除了地理编码具有我对short_name 的期望,而地点具有什么我希望两者都有long_name! *眼泪*

在 Places 库出现之前,我只是假设 Google 实际上没有街道名称、地区等的短/长版本 - 但现在看来您确实在某处有这种格式 - 可能不同产品团队有不同的数据库?

那么交易是什么?

我正在谈论的图像(将嵌入,但这是我的第一个 stackoverflow 问题,所以没有声誉):http://i.imgur.com/XPVj8.png

希望如何工作的详细列表:

  • 对于路线,地理编码的short_nameplaces'long_name
  • 在地理编码和地点之间的位置/子位置具有相同的“类型”值(两者都可以,只需选择一个)
  • 始终为状态 (administrative_area_level_1) 提供短/长 - 地理编码正确,但地点不正确
  • 国家/地区相同 - 地理编码在哪里获取格式化地址中的“美国”?
  • 如果 postal_code long_name 有 zip+4 会很整洁,但我想从数据的角度来看这将是一项巨大的努力

非常感谢 - 期待有关此行为的任何见解!

图片背后的代码:

<!DOCTYPE html>
<html>
  <head>
  <meta charset="UTF-8">
  <title>GMaps API V3 Geocoder vs Places Address Components | Short vs Long Name</title>
  <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=true&libraries=places"></script>
  <style type="text/css">
    #map {height: 100px; width: 600px; border: 1px solid #333; margin-top: 0.6em; }
    table { border-collapse: collapse; border-spacing: 0; }
    table td {border-top: 1px solid #DDD; padding:4px 8px; }
  </style>
  <script type="text/javascript">
    var map, geocoder, places, geocode_components, geocode_formatted, places_components, places_formatted
    function initialize() {
      geocoder = new google.maps.Geocoder();
      geocoder.geocode({'address': '3 South Main Street, York New Salem, PA'},
      function (results, status) {
        geocode_components = results[0].address_components;
        geocode_formatted = results[0].formatted_address;
        map = new google.maps.Map(document.getElementById('map'), {
          mapTypeId: google.maps.MapTypeId.ROADMAP,
          center: results[0].geometry.location,
          zoom: 10
        });

        places = new google.maps.places.PlacesService(map);
        places.search({location: results[0].geometry.location, radius:100, keyword: "Pizza"},
          function(results, status) {
            //get details - this feels a little extraneous to me, but y'all know best
            places.getDetails({reference: results[0].reference},
            function(result, status) {
              places_components = result.address_components;
              places_formatted = result.formatted_address;
              writeResults();
            });
          });
      });
    }

    function writeResults() {
    tbody = document.getElementById('results');
    formatted = document.getElementById('formatted');
    var rows = "";
    for(var i=0; i<geocode_components.length; i++) {
      var c = geocode_components[i];
      rows = rows + '<tr><td>Geocoding</td><td>' + c.types[0] + '</td><td>' + c.short_name + '</td><td>' + c.long_name + '</td></tr>';
    }

    for(var i=0; i<places_components.length; i++) {
      var c = places_components[i];
      rows = rows + '<tr><td>Places</td><td>' + c.types[0] + '</td><td>' + c.short_name + '</td><td>' + c.long_name + '</td></tr>';
    }
    tbody.innerHTML = rows;
    formatted.innerHTML = '<br />Geocode Formatted: ' + geocode_formatted + '<br />' + 'Places Formatted: ' + places_formatted;
  }
  google.maps.event.addDomListener(window, 'load', initialize);
  </script>
  </head>
  <body>
  <div id="map"></div>
  <table>
    <thead><tr><th>Service</th><th>Type</th><th>Short Name</th><th>Long Name</th></tr></thead>
    <tbody id="results"></tbody>
  </table>
  <div id="formatted"></div>
</body>
</html>

【问题讨论】:

  • 我认为您将增强请求放在了错误的位置。没什么大不了的,只是想帮忙,但更好的地方是Google Maps Issue List。 Stack Overflow 旨在解决特定的编程问题——比如:我试过这个和那个,但都不管用;做过这件事的人可以给我一点帮助吗?您的请求当然有道理,我只是认为您将其发布到错误的地方。
  • 谢谢你的小费,肖恩 - 我也会把它贴在那里 - 并感谢 dda 的格式化帮助。
  • 此功能请求已在issuetracker.google.com/issues/35821543解决

标签: google-maps-api-3 google-places-api google-geocoding-api


【解决方案1】:

如 cmets 中所述 - 此问题(请求)早在 2013 年 1 月就已修复/实施,请参阅 https://issuetracker.google.com/issues/35821543

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    • 2021-11-15
    • 1970-01-01
    • 2016-05-24
    相关资源
    最近更新 更多