c语言sscanf函数的用法是什么
372
2023-01-21
本文目录一览:
利用百度地图api通过城市地址等信息取经纬度
原创 2016年05月18日 10:25:01
标签:
百度地图 /
微信 /
api /
url /
json
21454
标红的是可以通过经纬度获得当前城市信息(微信定位使用)。
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格式)。
服务地址
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,若结果内容为空,原因分析及可尝试方法:
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: '字符串状态常量', 取值如下:返回结果(反地址解析的结果)
{status: '字符串状态常量', 取值如下:接口示例
根据详细地址获取坐标
http://api.map.baidu.com/geocoder?address=%E4%B8%8A%E5%9C%B0%E5%8D%81%E8%A1%9710%E5%8F%B7output=jsonkey=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%B7output=xmlkey=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%B7output=jsonkey=37492c0ee6f924cb5e934fa08c6b1676city=%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%B7output=xmlkey=37492c0ee6f924cb5e934fa08c6b1676city=%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%A6output=jsonkey=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%A6output=xmlkey=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%A3output=jsonkey=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%A3output=xmlkey=37492c0ee6f924cb5e934fa08c6b1676
//根据“北一环路和阜阳路的交叉路口”名称返回坐标“lng:117.294364, lat:31.885558”,以xml格式输入
根据坐标获取它的地址
http://api.map.baidu.com/geocoder?output=jsonlocation=39.983424,%20116.322987key=37492c0ee6f924cb5e934fa08c6b1676
//解析“lat:39.983424, lng:116.322987”坐标返回“北京市海淀区中关村大街27号1101-08室”,以json格式输出
http://api.map.baidu.com/geocoder?output=xmllocation=39.983424,%20116.322987key=37492c0ee6f924cb5e934fa08c6b1676
//解析“lat:39.983424, lng:116.322987”坐标返回“北京市海淀区中关村大街27号1101-08室”,以xml格式输出
地址库里无此数据,本次结果为空。
加入city字段重新解析;
将过于详细或简单的地址更改至省市区县街道重新解析;
逆地址解析:根据坐标获取地址
地址解析:根据地址获取坐标
百度地址http://developer.baidu.com/map/geocoding-api.htm
用户通过点击地图上面免费api提取地址的位置免费api提取地址,在地图上面进行描点免费api提取地址,然后再把获取的到的地理位置保存到地图上面的地址栏目中。
主要是百度地图API的使用
var map = new BMap.Map("allmap"); //实例化一个地图对象关于免费api提取地址和api地址怎么获取的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 免费api提取地址的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于api地址怎么获取、免费api提取地址的信息别忘了在本站进行查找喔。
var point = new
BMap.Point(116.331398,39.897445); //设置地图中心的位置
map.centerAndZoom(point,12);
//设置地图元素的可视层
map.enableScrollWheelZoom();
//启用滚轮放大缩小免费api提取地址,默认禁用
map.enableContinuousZoom();
//启用地图惯性拖拽免费api提取地址,默认禁用
function myFun(result){
var cityName =
result.name;
map.setCenter(cityName);
}
var myCity = new
BMap.LocalCity();
myCity.get(myFun);
i=0
//点击获取坐标
map.addEventListener("click",function(e){
if(i === 0)
{
//存储经纬度
lng = e.point.lng;
lat =
e.point.lat;
//在地图上面描点
var marker = new BMap.Marker(new
BMap.Point(lng,lat)); // 创建标注
map.addOverlay(marker);
marker.enableDragging(); //可拖拽
var gc = new
BMap.Geocoder();
//获取地址的数据地址
var pt = e.point;
gc.getLocation(pt, function(rs){
var addComp =
rs.addressComponents;
address = addComp.province + addComp.city +
addComp.district + addComp.street + addComp.streetNumber;
//画图
var label = new BMap.Label(address,{offset:new
BMap.Size(20,-10)});
marker.setLabel(label);
});
i=1;
}
});
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~