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

百度 地理编码Geocoding API

 
阅读更多

什么是Geocoding?

 

Geocoding API是一个供程序员调用的、http形式的地图服务接口。主要服务那些非网页程序的调用。例如C# 、C++、Java等开发语言都能发送http请求且能接收返回数据。

用户只需在请求的url字串中拼接好关键字或者经纬度信息,即可获取到相应的百度经纬度或者结构化地理信息。

Geocoding API有哪些功能?

Geocoding API包括地址解析和逆地址解析功能。

  • 地址解析是指,由详细到街道的结构化地址得到百度经纬度信息,且支持名胜古迹、标志性建筑名称直接解析返回百度经纬度。例如:“北京市海淀区中关村南大街27号”地址解析的结果是“lng:116.31985,lat:39.959836”,“百度大厦”地址解析的结果是“lng:116.30815,lat:40.056885”
  • 逆地址解析是指,由百度经纬度信息得到结构化地址信息。例如:“lat:31.325152,lng:120.558957”逆地址解析的结果是“江苏省苏州市虎丘区塔园路318号”。

注意:

1.因为Geocoding和反Geocoding使用的门址数据以及算法都不是一样的,所以会出现不能一一对应的现象。

2.解析过程中可能会出现一对坐标值对应多个地址门牌信息,本接口将返回距离坐标点最近的一个地址门牌信息。

使用限制

目前无任何使用限制。请申请key,然后使用该接口。

 

如何使用

第一步,申请key,点击这里获取密钥 ,申请key需要注册百度账号;

第二步,拼写发送http请求的url,注意需使用第一步申请的key;

第三步,接收http请求返回的数据(支持json和xml格式)。

 

服务地址

备注:

1. city属于可选参数,通常情况可以不使用,若解析无结果,请尝试增加此字段。

2. 支持名胜古迹、标志性建筑物名称解析返回百度经纬度坐标,如address=“百度大厦”。

3. 支持使用“*路与*路交叉口”方式解析返回百度经纬度坐标,若地址库中存在该地址描述,返回百度经纬度坐标。

4. 若解析status字段为OK,若结果内容为空,原因分析及可尝试方法:

  • 地址库里无此数据,本次结果为空。
  • 加入city字段重新解析;
  • 将过于详细或简单的地址更改至省市区县街道重新解析;

5. 特别提醒:逆地址解析location参数传入的参数格式是(纬度lat,经度lng)。

 

接口参数

参数 是否必须 默认值 格式举例 含义
output json json或xml 输出格式为json或者xml
address 北京市海淀区上地十街10号 根据指定地址进行坐标的反定向解析
location 38.76623,116.43213
lat<纬度>,lng<经度>
根据指定坐标来进行地址的解析
city “北京市” “广州市” 地址所在的城市名
key 8cb976834235d8cbcde2dce4835ae191 用户申请注册的key

 

 

上表中address和location两个字段如果同时出现,则优先选择address执行地理编码功能。对于address字段可能会出现中文或其它一些特殊字符(如:空格),所以对于类似的字符都要进行编码处理,编码成 UTF-8 字符的二字符十六进制值,凡是不在下表中的字符都要进行编码。

 

字符集合 字符
URL非保留字 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 - _ . ~
URL保留字 ! * ' ( ) ; : @ & = + $ , / ? % # [ ]

附注:

(1) javascript中一般采用encodeURIComponent函数对特殊字符进行编码。

(2) Java中可以使用函数URLEncoder.encode对特殊字符进行编码。

(3) C#中可以使用函数HttpUtility.UrlEncode对特殊字符进行编码。

(4) php中可以使用函数urlencode对特殊字符进行编码。

 

返回数据说明

返回结果(地址解析的结果)

 {status: '字符串状态常量', 取值如下:
 //OK 成功
 INVILID_KEY 非法密钥 
 INVALID_PARAMETERS 非法参数,参数错误时候给出。
 result: {    
 location: {
 lat: 纬度:数值,
 lng: 经度:数值
 },
 precise:’位置的附加信息,是否精确查找’(1为精确查找,0为不精确查找),
 confidence: 可信度,
 level:'级别'
 },
 }

返回结果(反地址解析的结果)

 {status: '字符串状态常量', 取值如下:
 //OK 成功
 INVILID_KEY 非法密钥   
 INVALID_PARAMETERS 非法参数,参数错误时候给出。
 result: {    
 location: {
 lat: 纬度:数值,
 lng: 经度:数值
 },
 formatted_address: ‘详细地址描述’,
 business: '周围商圈',
 addressComponent:{
 city:’城市名称’,
 district: ‘区县名称’,
 province:’省份名称’, 
 street: ‘街道名称’,
 streetNumber: '门牌号码' 
 },
 cityCode: '城市代码'
 }
 }
 

接口示例

根据详细地址获取坐标

 
            

http://api.map.baidu.com/geocoder?address=%E4%B8%8A%E5%9C%B0%E5%8D%81%E8%A1%9710%E5%8F%B7&output=json&key=37492c0ee6f924cb5e934fa08c6b1676

//根据“上地十街10号”返回坐标“lng:116.307175, lat:40.057098”,以json格式输出

http://api.map.baidu.com/geocoder?address=%E4%B8%8A%E5%9C%B0%E5%8D%81%E8%A1%9710%E5%8F%B7&output=xml&key=37492c0ee6f924cb5e934fa08c6b1676

//根据“上地十街十号”返回坐标“lng:116.307175, lat:40.057098”,以xml格式输出

 

在指定城市内检索详细地址的坐标

 
            

http://api.map.baidu.com/geocoder?address=%E4%B8%8A%E5%9C%B0%E5%8D%81%E8%A1%9710%E5%8F%B7&output=json&key=37492c0ee6f924cb5e934fa08c6b1676&city=%E5%8C%97%E4%BA%AC%E5%B8%82

// 在北京市内根据“上地十街10号”返回坐标“lng:116.307175, lat:40.057098”,以json格式输出

http://api.map.baidu.com/geocoder?address=%E4%B8%8A%E5%9C%B0%E5%8D%81%E8%A1%9710%E5%8F%B7&output=xml&key=37492c0ee6f924cb5e934fa08c6b1676&city=%E5%8C%97%E4%BA%AC%E5%B8%82

// 在北京市内根据“上地十街10号”返回坐标“lng:116.307175, lat:40.057098”,以json格式输出

 

根据特定建筑物获取它的坐标

 
            

http://api.map.baidu.com/geocoder?address=%E7%99%BE%E5%BA%A6%E5%A4%A7%E5%8E%A6&output=json&key=37492c0ee6f924cb5e934fa08c6b1676   //根据“百度大厦”名称返回坐标“lng:116.307175, lat:40.057098”,以json格式输入

http://api.map.baidu.com/geocoder?address=%E7%99%BE%E5%BA%A6%E5%A4%A7%E5%8E%A6&output=xml&key=37492c0ee6f924cb5e934fa08c6b1676   //根据“百度大厦”名称返回坐标“lng:116.307175, lat:40.057098”,以xml格式输入

 

根据“*路与*路交叉路口”类型地址描述获得它的坐标

 
            

http://api.map.baidu.com/geocoder?address=%E5%8C%97%E4%B8%80%E7%8E%AF%E8%B7%AF%E5%92%8C%E9%98%9C%E9%98%B3%E8%B7%AF%E7%9A%84%E4%BA%A4%E5%8F%89%E8%B7%AF%E5%8F%A3&output=json&key=37492c0ee6f924cb5e934fa08c6b1676

//根据“北一环路和阜阳路的交叉路口”名称返回坐标“lng:117.294364, lat:31.885558”,以json格式输入

http://api.map.baidu.com/geocoder?address=%E5%8C%97%E4%B8%80%E7%8E%AF%E8%B7%AF%E5%92%8C%E9%98%9C%E9%98%B3%E8%B7%AF%E7%9A%84%E4%BA%A4%E5%8F%89%E8%B7%AF%E5%8F%A3&output=xml&key=37492c0ee6f924cb5e934fa08c6b1676

//根据“北一环路和阜阳路的交叉路口”名称返回坐标“lng:117.294364, lat:31.885558”,以xml格式输入

 

根据坐标获取它的地址

 
            

http://api.map.baidu.com/geocoder?output=json&location=39.983424,%20116.322987&key=37492c0ee6f924cb5e934fa08c6b1676

//解析“lat:39.983424, lng:116.322987”坐标返回“北京市海淀区中关村大街27号1101-08室”,以json格式输出

http://api.map.baidu.com/geocoder?output=xml&location=39.983424,%20116.322987&key=37492c0ee6f924cb5e934fa08c6b1676

//解析“lat:39.983424, lng:116.322987”坐标返回“北京市海淀区中关村大街27号1101-08室”,以xml格式输出

 

分享到:
评论

相关推荐

    百度地图——导航(地理编码输入地址获取经纬度)

    对于地理编码,百度提供了`Geocoding API`,它可以将地址解析为精确的经纬度坐标,这对于实现导航功能至关重要。 在描述中提到的“demo”,是指开发者可以参考的示例代码。通常,这些示例会演示如何初始化地图、...

    百度反地理编码 定位经纬度

    在本示例中,我们聚焦于“百度反地理编码”服务,这是一种利用百度地图API来实现从地址到经纬度转换的功能。百度地图API提供了丰富的地理信息服务,包括定位、路线规划、地理围栏等,而反地理编码是其中的基础部分。...

    C#百度地图API获取经纬度所在地理位置

    百度地图API是百度提供的一套接口,允许开发者在其应用程序中集成地图功能,包括定位、路径规划、地理编码等。其中,定位服务是通过获取设备的经纬度坐标来确定其地理位置。 在C#中使用百度地图API,我们需要以下几...

    c#封装百度web服务geocoding api 、百度坐标转换示例

    `BaiduLbsType`枚举列举了所有可用的百度地图API服务,如`PlaceApIv2Search`表示地点搜索,`GeocodingApIv2Reverse`表示反向地理编码。`Status`枚举则表示API返回的状态码,包括成功(`Ok`)、参数无效(`...

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

    总的来说,"C#调用高德、百度及Google地图api解析经纬度及路径计算、位置标注源码"这个主题涵盖了跨平台的地图API使用,包括但不限于HTTP请求、JSON解析、地理编码、路径规划等核心功能。对于想要在C#项目中集成地图...

    python百度逆地理编码获取定位信息

    首先,我们要了解百度地图API提供的逆地理编码服务。百度地图API是百度公司推出的一款开放接口,它允许开发者通过HTTP请求获取地图、定位、路线规划等服务。其中,逆地理编码服务就是将经纬度坐标转化为实际的街道...

    打车功能(百度地图定位 + 反地理编码)

    使用GeocodingApi类的newReverseGeoCodeOption方法,传入经纬度坐标,发起反地理编码请求。 - 结果会通过OnGetGeoCodeResultListener接口返回,包含详细的地址信息。 4. **地图交互**: - 用户可以在地图上进行...

    C# 2010调用百度地图API

    要实现地理编码(将地址转换为坐标),可以使用百度地图的Geocoding API。以下是一个简单的示例: ```csharp using System.Net; using Newtonsoft.Json.Linq; public async Task&lt;BaiduLocation&gt; GetLocationAsync...

    Android studio 百度地图开发:触摸选点、地理编码、定位和导航

    使用百度地图SDK的GeocodingApi,可以实现这两个功能。通过发送请求,获取到对应的地理位置信息,用于显示地址或者设置地图中心点。 **5. 实时定位** 为了在地图上显示用户的位置,需要启用定位服务。使用...

    百度地图API记录轨迹和里程Javascript版html

    开头的API接口,例如`geocoding`(地理编码)、`direction`(路径规划)等。 - **绘制轨迹**:使用百度地图API的`BMap.Polyline`类创建折线对象,将轨迹点作为参数传入,然后添加到地图实例上。 - **计算里程**:...

    百度地图api获取坐标

    API提供了丰富的功能,包括地图展示、标注添加、地理编码、反地理编码、路线规划等,其中获取坐标经纬度是其核心功能之一。 **二、地理编码与反地理编码** 1. **地理编码**:将地址转换为坐标的过程。在百度地图...

    jQuery百度地图API美团外卖配送地址定位代码

    百度地图API是百度提供的地理位置服务,它提供了丰富的地图展示、地理编码、定位、路线规划等功能。在这个特定的应用场景中,我们将利用百度地图API的定位服务,获取用户的经纬度信息,并将其转换为可读的省市区地址...

    百度反编码Demo

    在地理信息系统(GIS)中,编码通常指的是将地理位置(如经纬度)转换为人类可读的地址,这一过程称为地理编码。相反,反编码(Reverse Geocoding)则是将经纬度坐标转换回具体的地址信息,帮助用户理解当前坐标所...

    百度地图API最新版

    百度地图API是开发者用于在网页或移动应用中集成地图功能的重要工具,它提供了丰富的地理定位、地图展示、路线规划、地理编码等服务。最新版的百度地图API通常会包含更多优化的功能和改进,以满足开发者不断变化的...

    百度地图API DEMO

    这需要用到GeocodingApi,处理返回的GeocodeResult对象。 6. **事件监听**:DEMO会展示如何监听地图的触摸事件,例如双击放大、单击定位等,这对于实现交互式地图至关重要。 7. **离线地图**:如果DEMO包含离线...

    Android百度地图API源码.zip

    百度地图API提供了GeocodingAPI和ReverseGeocodingAPI,源码中会有对应的接口实现,帮助开发者实现地址与坐标之间的相互转换。 此外,**覆盖物和标注**是地图上的重要元素。开发者可以通过Marker、InfoWindow等类...

    Android调用百度地图api

    - 百度地图API提供了地理编码(Geocoding)服务,可以将经纬度转换为具体的地址信息: ```java GeocodingOption geocodingOption = new GeocodingOption() .location(new LatLng(latitude, longitude)) ....

    通过百度地图API获取位置信息(市+区)

    百度地图API是一个强大的工具,它为开发者提供了丰富的地图服务功能,包括获取地理位置、路线规划、地理编码等。本文将深入探讨如何利用百度地图API获取精确到市和区的位置信息。 首先,我们需要了解什么是百度地图...

Global site tag (gtag.js) - Google Analytics