谷歌地理编码 XML 响应删除公寓/套房号码

Kar*_*oft 2 google-maps geocoding google-geocoding-api

使用 Geocode API 时,原始地址中的任何嵌入式公寓或套房编号似乎都在 XML 响应中被删除。这使得无法使用返回的地址作为“更正”或“标准化”格式进行保存。

  1. 有没有办法保存地址信息?

  2. 其次,在这种情况下,“apt B”代表与“A、C、D、E等”不同的建筑物。因此不同的屋顶地理编码。

任何帮助表示赞赏

发送以下地址:1135 Thomas Ln。Apt B, Hixson, TN 37343 到以下 URL(已删除密钥)"https://maps.googleapis.com/maps/api/geocode/xml?address=[ADDRESS]&key=[KEY]"

导致以下响应:

<?xml version="1.0" encoding="UTF-8"?>
<GeocodeResponse>
 <status>OK</status>
 <result>
  <type>street_address</type>
  <formatted_address>1135 Thomas Lane, Hixson, TN 37343, USA</formatted_address>
  <address_component>
   <long_name>1135</long_name>
   <short_name>1135</short_name>
   <type>street_number</type>
  </address_component>
  <address_component>
   <long_name>Thomas Lane</long_name>
   <short_name>Thomas Ln</short_name>
   <type>route</type>
  </address_component>
  <address_component>
   <long_name>Hixson</long_name>
   <short_name>Hixson</short_name>
   <type>neighborhood</type>
   <type>political</type>
  </address_component>
  <address_component>
   <long_name>Chattanooga</long_name>
   <short_name>Chattanooga</short_name>
   <type>locality</type>
   <type>political</type>
  </address_component>
  <address_component>
   <long_name>Hamilton County</long_name>
   <short_name>Hamilton County</short_name>
   <type>administrative_area_level_2</type>
   <type>political</type>
  </address_component>
  <address_component>
   <long_name>Tennessee</long_name>
   <short_name>TN</short_name>
   <type>administrative_area_level_1</type>
   <type>political</type>
  </address_component>
  <address_component>
   <long_name>United States</long_name>
   <short_name>US</short_name>
   <type>country</type>
   <type>political</type>
  </address_component>
  <address_component>
   <long_name>37343</long_name>
   <short_name>37343</short_name>
   <type>postal_code</type>
  </address_component>
  <address_component>
   <long_name>3744</long_name>
   <short_name>3744</short_name>
   <type>postal_code_suffix</type>
  </address_component>
  <geometry>
   <location>
    <lat>35.1448870</lat>
    <lng>-85.2471100</lng>
   </location>
   <location_type>ROOFTOP</location_type>
   <viewport>
    <southwest>
     <lat>35.1435380</lat>
     <lng>-85.2484590</lng>
    </southwest>
    <northeast>
     <lat>35.1462360</lat>
     <lng>-85.2457610</lng>
    </northeast>
   </viewport>
  </geometry>
  <partial_match>true</partial_match>
 </result>
</GeocodeResponse>
Run Code Online (Sandbox Code Playgroud)

Jon*_*ver 5

您遇到的问题可以追溯到 Google Geocoding API 的核心理念和用例目标:识别结构或设施的纬度/经度坐标并将其绘制在地图上。次要信息(套房、公寓等)通常不是实现该目标所必需的,因此会被丢弃或忽略。每个二级号码都有一个结构的交付点,例如,一整栋楼用于 100 套房,另一个用于套房 200,并不特别常见,似乎不属于谷歌地理编码 API 的预期用户。

此外,API 是一种“地址近似”工具,可以猜测地址可能在哪里。例如,如果121 Main Street有建筑物并且125 Main Street也有,但123 Main Street不是真实的,它会在中间绘制地址121125就好像它在那里一样,即使地址不存在。

如果您想验证地址(有或没有辅助信息)以确保它是真实的,然后将其绘制在地图上,有许多服务(免费和付费)可以提供这种行为。在 Google 上搜索“地址验证”之类的内容,将为您提供许多提供验证和地理编码的组织的结果。

如果来自这些服务的地理编码分辨率不足以满足您的业务需求,您仍然希望拥有一个清理过的地址,因为这样您就可以将这些清理过和验证过的地址通过管道传输到另一个服务——也许是 NavTeq——以获得整个建筑物专用于辅助号码(套房、公寓等)的位置的屋顶级数据。请注意,NavTeq 等供应商通常非常昂贵,因此只有当您的业务需求确实需要超精确分辨率的费用时,您才能做出判断。

为了充分披露,我是SmartyStreets的创始人,我们提供地址验证和地理编码服务。如果您有其他问题,我们很乐意为您提供帮助。