地理编码地址(如“1600剧场百汇,山景,CA”)转换为地理坐标(如纬度37.423021经度和-122.083739),你可以用它来 放置标志或位置的地图的过程中。
反向地理编码是将地理坐标转换的过程中,成为一个人类可读的地址。
谷歌地图API提供了从用户输入动态地理编码和反向地理编码地理编码类。这些请求速率限制,以防止滥用的服务。相反,如果你想进行地理编码已知的静态地址, 地理编码Web服务文档。
访问地理编码服务是异步的,因为谷歌地图API需要调用一个外部服务器。出于这个原因,你需要传递一个回调方法来执行的请求完成时。这个回调方法处理的结果(S)。请注意,地址解析器可能返回多个结果。
您在您的代码中访问谷歌地图API地理编码服务通过 google.maps.Geocoder
对象。的Geocoder.geocode()
方法启动的请求地理编码服务,通过它一个 GeocodeRequest,
对象字面的输入项和一个回调方法执行后收到的响应。
的GeocodeRequest
对象的文字包含以下字段:
地址: 字符串, 经纬度: 经纬度, 界限: LatLngBounds , 地区: 字符串 }
下面说明这些字段。
地址
(需要*) -您要进行地理编码的地址。 的经纬度
(要求*) - 你想获得最近的地方,人类可读的地址的经纬度
。 界
(可选) - LatLngBounds
内的偏见地理编码结果更加突出。(有关详细信息,请参阅 “视口偏置以下)。 地区
(可选) -指定的地区代码,作为一个 IANA语言区域
的子标签。在大多数情况下,这些标签直接映射到熟悉的)国家和地区代码顶级域名(ccTLD(“顶级域”)两个字符的值。(有关详细信息,请参阅以下地区代码偏置。) *注意:您可以通过 地址
或经纬度
来查询。(如果你传递一个 经纬度
,地理编码进行所谓的一个反向地理编码。有关更多信息,请参见反向地理编码)。
界限
和区域的
参数只会影响,而不是完全限制,从地理编码的结果。
地理编码服务需要一个回调方法来执行检索时Geocoder的结果。这个回调函数传递两个参数保持的结果
和状态
代码,按照这个顺序。Geocoder只可能返回多个条目,GeocoderResults
反对文字是一个数组。
GeocoderResults
对象文字代表一个单独的地理编码结果和对象是以下形式:
results[]: { types[]: string, formatted_address: string, address_components[]: { short_name: string, long_name: string, types[]: string }, geometry: { location: LatLng, location_type: GeocoderLocationType viewport: LatLngBounds, bounds: LatLngBounds } }
这些字段的解释如下:
类型[]
是一个数组,指示返回结果的类型。该数组中包含的一组中的一个或多个标签,识别结果中返回的类型的特征。例如,地理编码“芝加哥”返回“位置”,这表明,“芝加哥”,是一个城市,而且还返回“政治”,表示这是一个政治实体。 formatted_address
是一个字符串,其中包含人类可读的地址,这个位置。通常情况下,这个地址相当于“邮政地址”,有时会因国家不同。(请注意,一些国家,如英国,不要让真正的邮政地址分配,由于许可限制)。该地址通常是由一个或多个地址组成部分。例如,地址“,纽约州,纽约第八大道111”包含“111第八大道”(街道地址),“纽约”(城市)和“NY”(美国的州)的单独的地址组件。注意下面这些地址组件。(类型的更多信息,请参见 下面的类型。 address_component []
是一个数组,包含单独的地址组件,如上面所解释的。 几何
包含以下信息:
位置
包含地理编码的经度,纬度值。请注意,我们回到这个位置作为一个经纬度
对象的,而不是作为一个格式化字符串。 LOCATION_TYPE
额外的数据存储在指定的位置。目前支持以下值:
google.maps.GeocoderLocationType.ROOFTOP
表示返回的结果反映了一个精确的地理编码。 google.maps.GeocoderLocationType.RANGE_INTERPOLATED
表示,返回的结果反映的近似(通常在道路上)之间插入两个精确点(如十字路口)。插值结果时,通常会返回屋顶地理编码街道地址是不可用。 google.maps.GeocoderLocationType.GEOMETRIC_CENTER
表明返回的结果是如的折线(例如,街道)或多边形(地区)的结果的几何中心的。 google.maps.GeocoderLocationType.APPROXIMATE
表明,返回的结果是近似的。 视口
存储推荐的视口返回的结果。 边界
(可选返回),存储的 LatLngBounds,
可完全包含在返回的结果。请注意,这些边界可能不符合推荐的视口。(例如,旧金山的 法 '伦群岛,这在技术上是城市的一部分,但不应该在视口中返回)。 将返回地址的地理编码,使用浏览器的首选语言设置,或指定的语言时加载的API JavaScript中使用的语言
参数。(有关详细信息,请参阅 本地化)。
类型[]
数组内返回的结果表示 地址类型。这些类型还可以返回address_components []
数组内, 以指示特定的地址分量的类型。在地理编码的地址可能有多种类型,类型可以被认为是“标签”。例如,许多城市的标签,政治
和地区
。
支持以下类型和返回的HTTP地址解析器:
street_address
表示具体的街道地址。 路由
表示一个命名的路径(如“美国101”)。 交叉点
表示一个主要的路口,通常有两种主要道路。 政治
表示一个政治实体。通常情况下,这种类型的表示一些民间管理的多边形。 国家
表明国家的政治实体,通常是最高的了Geocoder返回的订单类型。 administrative_area_level_1
表示低于国家一级的一阶民间实体。在美国,这些行政级别是国家。并非所有国家都表现出这些行政的水平。 administrative_area_level_2
表示二阶民间实体低于全国水平。在美国,这些行政级别是县。并非所有国家都表现出这些行政的水平。 administrative_area_level_3
表示三阶民间实体低于全国水平。这种类型表示轻微的民事审判庭。并非所有国家都表现出这些行政的水平。 colloquial_area
表示常用的替代名称的实体。 地方
表示纳入城市或城镇的政治实体。 sublocality
表示一阶低于当地的民间实体。 附近
表示命名的附近。 前提
表示指定的位置,一般的建筑物或建筑物的集合与一个共同的名字 subpremise
表示一阶实体下面命名的位置,通常是一个奇异的建筑内,建筑物的集合与一个共同的名字。 postal_code的
表示邮政编码,用于解决在该国邮政邮件。 natural_feature
表示一个显着的自然特征。 机场
表示机场。 公园
表示命名的公园。 在除了上述以外,地址的组分可以具有以下类型:
post_box
表示一个特定的邮箱。 street_number
表示精确的门牌号码。 层
表示层的建设地址。 房间
表示房的建设地址。 状态
代码可能返回下列值之一:
google.maps.GeocoderStatus.OK
表示地理编码是成功的。 google.maps.GeocoderStatus.ZERO_RESULTS
表明,地理编码是成功的,但没有返回任何结果。这可能是由于地理编码通过了一个不存在的的地址
或 latng
在一个偏远的位置。 的google.maps.GeocoderStatus.OVER_QUERY_LIMIT
表明你是在你的配额。 google.maps.GeocoderStatus.REQUEST_DENIED
表示,由于某些原因,您的请求被拒绝。 google.maps.GeocoderStatus.INVALID_REQUEST
通常表明缺少的查询(地址
或经纬度
)。 在这个例子中,我们进行地理编码的地址和一个标记返回的纬度和经度值。需要注意的是传递一个匿名函数,文字处理程序。
没有成功的原因:“ + 状态); } }); } < 身体的onload = “初始化()” > < div的id = “map_canvas”的风格= “宽度:320px来电,高 度:480像素;” > </ DIV > <DIV> 输入id = “地址” 类型= “文本框” 值= “悉尼,新南威尔士州” > < 输入类型= “按钮” 值= “编码” 的onclick = “codeAddress()” > < / div> < / 身体>
术语地理编码一般是指一个人类可读的地址翻译成地图上的位置。,被称为反向地理编码的过程做相反的,翻译成一个人类可读的地址在地图上的位置 。
Geocoder的
直接支持反向地理编码的。,而不是提供一个文本地址
的经纬度
参数,提供一个以逗号分隔的纬度/经度对。
下面的例子进行地理编码的纬度/经度值,并在该位置的地图居中,带来了一个信息窗口,格式化的地址。我们返回第二个结果,这是较不特定于第一个(在这种情况下,一个邻里名称):
失败的原因是:“ + 状态); } }); }
请注意,在前面的例子中,我们发现的第二个结果(选择的结果[1]
。反向地理编码器通常会返回多个结果。地理编码“地址”是的不仅仅是邮政地址,但任何方式在地理上的位置命名,例如地理编码点进行地理编码时在芝加哥市的一个点,可能被标记为一个街道地址,城市(芝加哥),其状态(伊利诺伊州),或一个国家(美国)。所有的地址反向地理编码地理编码。返回所有的这些结果。
反向地理编码匹配的政治实体(国家,省,市,街道),街道地址和邮政编码。
前面的查询返回的地址的完整列表如下所示。
[ 0 ]。formatted_address : “275-291贝德福德大道,布鲁克林区,NY 11211,USA” , 结果[ 1 ]。formatted_address : “威廉斯堡,NY,USA” , 结果[ 2 ]。formatted_address : “纽约11211,USA “ , [ 3 ]。formatted_address : “国王,纽约,美国” 结果[ 4 ]。formatted_address : “布鲁克林,纽约,美国” 结果[ 5 ]。formatted_address : “纽约,纽约,美国” 结果[ 6 ]。formatted_address : “纽约,美国” 结果[ 7 ]。formatted_address : “美国”
最好至少比赛的顺序返回地址。一般情况下,更准确的地址是最突出的结果,因为它是在这种情况下。请注意,我们返回不同类型的地址,从最具体的街道地址,那么具体的政治实体,如邻里,城市,县,州等,如果你想匹配一个更一般的地址,你不妨检查的结果[类型
领域。
注:反向地理编码是不是一门精确的科学。地理编码将试图找到最接近的可寻址位置有一定的公差范围内。
您还可以指示地理编码服务,喜欢在给定的视口(表示为边界框)的结果。你这样做,通过设置 边界
参数的GeocodeRequest
对象字面定义该视口的范围内。请注意,偏置只 喜欢的边界内的结果;如果存在更多的相关结果这些界限之外,它们也可以包括在内。
例如,地理编码为“旅游Winnetka”通常返回芝加哥郊区的:
{ “类型” :“位置” ,“政治” , “formatted_address” :“旅游Winnetka,IL,
但是,指定一个的界限
参数定义在这个地理编码回国命名为“旅游Winnetka”在该位置附近的洛杉矶圣费尔南多谷的边界框:
{ “类型” :[的“sublocality” ,“政治” , “formatted_address” :“旅游Winnetka,加利福尼亚州, 洛杉矶“ , “SHORT_NAME” :“洛杉矶” , “类型” :“administrative_area_level_3” ,“政治” ] },{ “long_name” :“洛杉矶” , “SHORT_NAME” :“洛
您还可以设置地理编码服务返回的结果偏向于一个特定的地区,明确地使用区域
参数。这个参数可以指定一个区域代码,为IANA语言 地区
的子标签。在大多数情况下,这些标签直接映射到熟悉的)国家和地区代码顶级域名(ccTLD(“顶级域”)两个字符的值,如“英国”,“co.uk”。在某些情况下,该区域的
标签也支持了ISO-3166-1编码,有时不同的国家代码顶级域的值(“GB”为“大不列颠”)。
为每个域的主要的谷歌地图应用程序提供地理编码,地理编码请求可以发送。需要注意的是偏只 喜欢特定域的结果,如果有更多的相关结果这个领域以外的,他们可能会被列入。
例如,地理编码“托莱多”返回这样的结果,作为地理编码服务的默认域设置为美国:
{ “类型” :“位置” ,“政治” , “formatted_address” :“托莱多,OH, 国“ , “SHORT_NAME” :“美国” , “类型” :[ “国家” ,“政治” ] }] }
地理编码的地区“
字段中的“托莱多” 设置为 “ES”
(西班牙)将返回西班牙城市:
{ “类型” :“位置” ,“政治” , “formatted_address” :“托莱多,