本站停止维护,已转移至laravel学习网;欢迎大家移步访问!

利用百度地图api通过城市地址等信息取经纬度

使用限制

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

如何使用

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

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

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

服务地址

  • 地址解析:根据地址获取坐标

http://api.map.baidu.com/geocoder?address=地址&output=输出格式类型&key=用户密钥&city=城市名

  • 逆地址解析:根据坐标获取地址

http://api.map.baidu.com/geocoder?location=纬度,经度&output=输出格式类型&key=用户密钥

备注:

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

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

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

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

  • 地址库里无此数据,本次结果为空。

  • 加入city字段重新解析;

  • 将过于详细或简单的地址更改至省市区县街道重新解析;

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

接口参数

参数是否必须默认值格式举例含义
outputjsonjson或xml输出格式为json或者xml
address北京市海淀区上地十街10号根据指定地址进行坐标的反定向解析
location38.76623,116.43213
lat<纬度>,lng<经度>
根据指定坐标来进行地址的解析
city“北京市”“广州市”地址所在的城市名
key8cb976834235d8cbcde2dce4835ae191用户申请注册的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://bbs.earnp.com/article/28
问题交流群 :562864481
0
打赏
发布时间 :2016-07-30 04:25:09
分享

0 个评论

    还没有评论,感觉来抢沙发吧!

要回复文章请先登录注册