浙江省高等学校教师教育理论培训

微信搜索“毛凌志岗前心得”小程序

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

http://code.google.com/intl/zh-CN/apis/maps/documentation/geocoding/#Types

 

地址组成部分的类型

返回结果中的 types[] 数组表示地址类型。 address_components[] 数组中也可能返回这些类型,以表示特定地址组成部分的类型。地址解析器中的地址可能有多种类型,这些类型也可以视为“标签”。例如,许多城市都带有 politicallocality 类型的标签。

HTTP 地址解析器支持并返回以下类型:

  • street_address 表示一个精确的街道地址。
  • route 表示一条已命名的路线(如“US 101”)。
  • intersection 表示一个大十字路口,通常由两条主道交叉形成。
  • political 表示一个政治实体。此类型通常表示代表某个行政管理区的多边形。
  • country 表示国家政治实体。在地址解析器返回的结果中,该部分通常列在最前面。
  • administrative_area_level_1 表示仅次于国家级别的行政实体。在美国,这类行政实体是指州。并非所有国家都有该行政级别。
  • administrative_area_level_2 表示国家级别下的二级行政实体。在美国,这类行政实体是指县。并非所有国家都有该行政级别。
  • administrative_area_level_3 表示国家级别下的三级行政实体。此类型表示较小的行政单位。并非所有国家都有该行政级别。
  • colloquial_area 表示实体的通用别名。
  • locality 表示合并的市镇级别政治实体。
  • sublocality 表示仅次于地区级别的行政实体。
  • neighborhood 表示已命名的邻近地区。
  • premise 表示已命名的位置,通常是具有常用名称的建筑物或建筑群。
  • subpremise 表示仅次于已命名位置级别的实体,通常是使用常用名称的建筑群中的某座建筑物。
  • postal_code 表示邮政编码,用于确定相应国家/地区内的信件投递地址。
  • natural_feature 表示某个明显的自然特征。
  • airport 表示机场。
  • park 表示已命名的公园。
  • point_of_interest 表示已命名的兴趣点。通常,这些“POI”是一些不易归入其他类别的比较有名的当地实体,如“帝国大厦”或“自由女神像”。

除此之外,地址组成部分还可以使用以下类型:

  • post_box 表示一个具体的邮筒。
  • street_number 表示精确的街道编号。
  • floor 表示建筑物的楼层号。
  • room 表示建筑物的房间编号。

反向地址解析(地址查询)

术语“地址解析”通常是指将人类可读的地址转换成地图上的位置。 反之,将地图上的位置转换成人类可读的地址这一过程则称为“反向地址解析”。 

Google Geocoding API 支持直接使用 latlng 参数进行反向地址解析。例如,下列查询包含了布鲁克林某一位置的纬度/经度值:

http://maps.google.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=true_or_false

请注意:在传入 latlng 参数时,请确保纬度值与经度值之间没有空格。

该查询返回下列结果:

{
 
"status": "OK",
 
"results": [ {
   
"types": [ "street_address" ],
   
"formatted_address": "275-291 Bedford Ave, Brooklyn, NY 11211, USA",
   
"address_components": [ {
     
"long_name": "275-291",
     
"short_name": "275-291",
     
"types": [ "street_number" ]
   
}, {
     
"long_name": "Bedford Ave",
     
"short_name": "Bedford Ave",
     
"types": [ "route" ]
   
}, {
     
"long_name": "New York",
     
"short_name": "New York",
     
"types": [ "locality", "political" ]
   
}, {
     
"long_name": "Brooklyn",
     
"short_name": "Brooklyn",
     
"types": [ "administrative_area_level_3", "political" ]
   
}, {
     
"long_name": "Kings",
     
"short_name": "Kings",
     
"types": [ "administrative_area_level_2", "political" ]
   
}, {
     
"long_name": "New York",
     
"short_name": "NY",
     
"types": [ "administrative_area_level_1", "political" ]
   
}, {
     
"long_name": "United States",
     
"short_name": "US",
     
"types": [ "country", "political" ]
   
}, {
     
"long_name": "11211",
     
"short_name": "11211",
     
"types": [ "postal_code" ]
   
} ],
   
"geometry": {
     
"location": {
       
"lat": 40.7142298,
       
"lng": -73.9614669
     
},
     
"location_type": "RANGE_INTERPOLATED",
     
"viewport": {
       
"southwest": {
         
"lat": 40.7110822,
         
"lng": -73.9646145
       
},
       
"northeast": {
         
"lat": 40.7173774,
         
"lng": -73.9583193
       
}
     
}
   
}
 
},
 
 
... Additional results[] ...

请注意,反向地址解析器传回了多个结果。结果的 "formatted_addresses" 不仅是指通信地址,还包含对位置进行地理命名的所有方式。例如,当对芝加哥市中的一个点进行地址解析时,地址解析的点可标注为其街道地址、城市(芝加 哥)、州(伊利诺斯)或国家(美国)。这些对地址解析器来说都是“地址”。反向地址解析器可将任何这些类型的地址作为有效结果传回。

反向地址解析器将匹配政治实体(国家/地区、省、市和邻近地区)、街道地址和邮政编码。

前一查询所传回的 formatted_address 值的完整列表如下所示。

"formatted_address": "275-291 Bedford Ave, Brooklyn, NY 11211, USA",
"formatted_address": "Williamsburg, NY, USA",
"formatted_address": "New York 11211, USA",
"formatted_address": "Kings, New York, USA",
"formatted_address": "Brooklyn, NY, USA",
"formatted_address": "New York, NY, USA",
"formatted_address": "New York, USA",
"formatted_address": "United States"

通常,地址将按照具体程度由高到低的顺序传回;最确切的地址将作为最显著的结果传回,本例就是如此。请注意,我们传回了各种不同的地址,从十分具体的街道地址到比较笼统的政治实体,如邻近地区、市、县、州/省等。如果您希望匹配更广泛的地址,可能要检查传回的 Placemark"types" 字段(请参见上文的地址组成部分类型)。

注意:反向地址解析给出的是估计结果。地址解析器会试图在一定的偏差范围内查找最接近的可寻址位置;如果找不到匹配项,地址解析器通常不会传回结果。

 

 

https://github.com/alexreisner/geocoder/blob/master/CHANGELOG.rdoc

 

0.9.9 (2011 Mar 9)

https://github.com/alexreisner/geocoder/blob/master/CHANGELOG.rdoc

  • Add support for IP address geocoding via FreeGeoIp.net.

  • Add support for Yahoo PlaceFinder geocoding API.

  • Add support for custom geocoder data handling by passing a block to geocoded_by or reverse_geocoded_by.

  • Add Rack::Request#location method for geocoding user’s IP address.

  • Change gem name to geocoder (no more rails-geocoder).

  • Gem now works outside of Rails.

  • DEPRECATION: fetch_coordinates no longer takes an argument.

posted on 2011-08-18 02:46  lexus  阅读(747)  评论(0编辑  收藏  举报