什么是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号”。
使用限制
目前无任何使用限制。请申请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: '城市代码'
}
}
接口示例
根据详细地址获取坐标
在指定城市内检索详细地址的坐标
根据特定建筑物获取它的坐标
根据“*路与*路交叉路口”类型地址描述获得它的坐标
根据坐标获取它的地址