`
sungang_1120
  • 浏览: 322527 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

谷歌地图JavaScript API第3版 地理编码服务

 
阅读更多

 

地理编码服务

  1. 概观
  2. 地理编码请求
  3. 地理编码响应
    1. 地理编码结果
    2. 地址组件类型
    3. 状态代码
  4. 反向地理编码
  5. 视口偏置
  6. 区码偏置

概观

地理编码地址(如“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> 
< / 身体>

查看示例(地理编码simple.html)

反向地理编码(地址查询)

术语地理编码一般是指一个人类可读的地址翻译成地图上的位置。,被称为反向地理编码的过程做相反的,翻译成一个人类可读的地址在地图上的位置 

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  “美国”

最好至少比赛的顺序返回地址。一般情况下,更准确的地址是最突出的结果,因为它是在这种情况下。请注意,我们返回不同类型的地址,从最具体的街道地址,那么具体的政治实体,如邻里,城市,县,州等,如果你想匹配一个更一般的地址,你不妨检查的结果[类型领域。

注:反向地理编码是不是一门精确的科学。地理编码将试图找到最接近的可寻址位置有一定的公差范围内。

查看示例(地理编码reverse.html)

视口偏置

您还可以指示地理编码服务,喜欢在给定的视口(表示为边界框)的结果。你这样做,通过设置 边界参数的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” :“托莱多,
  
    
    
    
  
    
    
    
  
    
    
    
  
    
    
    
  
分享到:
评论

相关推荐

    百度地图JavaScriptAPI离线版3.0.zip

    通过学习和理解以上知识点,开发者可以充分利用百度地图JavaScript API离线版3.0来构建各种离线地图应用,如导航系统、地理信息系统、房产查询等,即使在网络条件不佳的情况下也能提供可靠的地图服务。

    Google 地图 JavaScript API 示例

    这些只是Google地图JavaScript API的基本用法,实际开发中,开发者还可以根据需求进行更复杂的定制,例如添加自定义图层、使用KML数据、实现地图拖拽事件、设置地图样式、实现地理围栏等。通过不断学习和实践,可以...

    JavaScript入门经典(第3版)高清PDF—3

    《JavaScript入门经典(第3版)》首先介绍了JavaScript的基本语法,并介绍了如何发挥JavaScript中对象的威力。《JavaScript入门经典(第3版)》还介绍了如何操纵最新版本浏览器所提供的BOM对象。在《JavaScript入门经典...

    百度地图JavaScriptAPI离线版 百度web demo 百度地图下载器等

    百度地图JavaScriptAPI离线版 百度web demo等多个开发包,非常适用在不联网的环境使用,非常方便的下载地图瓦片,然后集成到web系统中。该版本我亲自使用过,完成开发工作。api需要有针对性修改。api有很多实例,只...

    Google 地图 JavaScript API 示例 简单地址解析

    Google地图JavaScript API是开发人员用于在网页上集成Google地图的强大工具。它提供了丰富的功能,包括地图显示、标记定位、路线规划等。在这个示例中,我们将深入探讨如何使用JavaScript API进行简单的地址解析。 ...

    开发指南--百度地图JavaScriptAPI大众版

    开发指南--百度地图JavaScriptAPI大众版

    百度地图离线版Javascript API 2.0版

    本文将详细介绍百度地图离线版Javascript API 2.0版,这是一个适用于开发者在没有网络连接的情况下依然可以使用的地图服务解决方案。该版本提供了全面的功能和丰富的示例,帮助开发者构建基于地图的应用程序。 首先...

    《JavaScript和jQuery实战手册 原书第3版》PDF

    《JavaScript和jQuery实战手册 原书第3版》是一本深入浅出的编程指南,专为想要掌握JavaScript和jQuery的开发者所设计。这本书详细介绍了这两种技术的核心概念、语法以及在实际开发中的应用,旨在帮助读者提升Web...

    Javascript 高级程序设计(第3版)超清中文PDF

    《JavaScript高级程序设计》(第3版)是一本深入探讨该语言精髓的权威书籍,它为读者提供了全面且深入的JavaScript知识,包括语言核心、DOM操作、BOM处理、事件处理以及面向对象编程等多个方面。 在书中,作者详细...

    谷歌地图API

    谷歌地图API是Google提供的一套JavaScript API,用于在网页上显示地图和提供相关的地图服务。最新版本为V3,于2010年6月15日更新。该API提供了丰富的功能和方法,涵盖了地图显示、地理编码、路线规划、海拔服务等多...

    google离线地图API包 + 地图数据

    Google Map API V3是Google提供的一个JavaScript库,用于在网页上嵌入交互式地图。这个API提供了丰富的功能,如定位、路线规划、地图缩放和平移等。在这个压缩包中,包含了使用Google Map API V3来实现离线地图的...

    Google地图定位

    首先,Google Maps API提供了丰富的服务,包括静态地图、动态地图、地理编码、方向服务等。在C# WinForm应用中,你可以使用HttpClient或者WebClient类来发送HTTP请求,获取API返回的JSON数据。例如,为了获取用户...

    C#调用高德、百度及google地图api解析经纬度及路径计算、位置标注源码

    Google Maps API提供了广泛的地理服务,如地图展示、定位、路径规划等。在C#中,我们可以使用Google Maps Geocoding API来解析地址到经纬度,反之亦然。Google Maps Directions API用于路径规划。值得注意的是,...

    js腾讯地图api获取坐标定位地理位置_soso地图api获取坐标

    地图API则专门用于与地图服务提供商进行通信,如腾讯地图和搜搜地图,它们提供了一系列接口,使得开发者能够集成地图功能,包括但不限于地图展示、地理编码、路线规划、定位等。 在JavaScript中使用腾讯地图API获取...

    百度地图javascript API + 调用封装javascript

    4. **地理编码**:使用`BMap.Geocoder`服务将地址转换为坐标,或反之。 5. **标注与信息窗口**:`BMap.Marker`用于在地图上添加标注,`BMap.InfoWindow`则可以创建弹出的信息窗口。 6. **路线规划**:通过`BMap....

    ArcGIS API for JavaScript3加载谷歌地图

    它支持多种地图服务,包括自定义的地图服务、地理编码服务、地形图层等。在3.23版本中,该API已经相当成熟,提供了丰富的功能和优化的性能。 加载谷歌地图的关键在于利用ArcGIS API的`esri.map.Map`类和`esri....

    刘光《ArcGIS Server JavaScript API开发GeoWeb 2.0应用》书的源代码

    2. **服务的发布与调用**:ArcGIS Server如何发布地理数据为地图服务,以及如何通过JavaScript API调用这些服务,这在Chapter05中可能有所涉及。 3. **图层管理**:包括添加、删除、隐藏和显示图层,以及图层的属性...

    使用百度地图JavaScript API 画轨迹,给出自定义图标和标注

    在本文中,我们将深入探讨如何使用百度地图JavaScript API 来绘制轨迹,并添加自定义图标和标注。这是一项在Web开发中常用于地理位置展示和分析的重要技术。首先,我们需要理解百度地图API的基础概念及其核心功能。 ...

Global site tag (gtag.js) - Google Analytics