根据经纬度获取所在城市以及根据地点获取经纬度
地址解析:根据地址获取坐标
http://api.map.baidu.com/geocoder?address=地址&output=输出格式类型&key=用户密钥&city=城市名
备注:
city属于可选参数,通常情况可以不使用,若解析无结果,请尝试增加此字段。
支持名胜古迹、标志性建筑物名称解析返回百度经纬度坐标,如address=“百度大厦”。
支持使用“路与路交叉口”方式解析返回百度经纬度坐标,若地址库中存在该地址描述,返回百度经纬度坐标。
若解析status字段为OK,若结果内容为空,原因分析及可尝试方法:
· 地址库里无此数据,本次结果为空。
· 加入city字段重新解析;
· 将过于详细或简单的地址更改至省市区县街道重新解析;
接口参数
参数
是否必须
默认值
格式举例
含义
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:‘级别’
},
}
Dome(CI框架):
##获取具体位置
public function get_realy_address()
{
$lat = $this->get(‘lat’); #纬度
$lng = $this->get(‘lng’); #经度
KaTeX parse error: Expected 'EOF', got '&' at position 61: … output=json&̲location='.lat.’,’.$lng.’&key=37492c0ee6f924cb5e934fa08c6b1676’;
c o n t e n t = f i l e g e t c o n t e n t s ( content = file_get_contents( content=filegetcontents(url);
p l a c e = j s o n d e c o d e ( place = json_decode( place=jsondecode(content,true);
echo json_encode($place);
}
返回:
{
“status”: “OK”,
“result”: {
“location”: {
“lng”: 116,
“lat”: 30
},
“formatted_address”: “湖北省黄冈市黄梅县”,
“business”: “”,
“addressComponent”: {
“city”: “黄冈市”,
“direction”: “”,
“distance”: “”,
“district”: “黄梅县”,
“province”: “湖北省”,
“street”: “”,
“street_number”: “”
},
“cityCode”: 271
}
}