最近需要做一些在线地图的应用,于是去看了百度的在线地图API,发现还不错。
先看看对应js的api。
首先需要申请一个apikey,然后在页面的head里加入:
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>
之后加入显示地图的div,id="allmap",之后在html标签后增加创建具体地图的js:
1 <script type="text/javascript"> 2 // 百度地图API功能 3 var map = new BMap.Map("allmap"); 4 map.enableScrollWheelZoom(); 5 map.centerAndZoom("北京天安门",16); 6 map.addEventListener("load",function(){ 7 //alert("地图加载完毕"); 8 var marker = new BMap.Marker(map.getCenter()); 9 map.addOverlay(marker); 10 marker.show(); 11 12 var opts = { 13 position : map.getCenter(), // 指定文本标注所在的地理位置 14 offset : new BMap.Size(-43, -45) //设置文本偏移量 15 } 16 var label = new BMap.Label("我爱北京天安门", opts); // 创建文本标注对象 17 label.setStyle({ 18 backgroundColor: "transparent", 19 border: "0px", 20 color : "black", 21 fontWeight: "bold", 22 fontSize : "12px", 23 height : "20px", 24 lineHeight : "20px", 25 fontFamily:"微软雅黑" 26 }); 27 map.addOverlay(label); 28 }); 29 30 map.addControl(new BMap.MapTypeControl()); 31 map.addControl(new BMap.NavigationControl({anchor: BMAP_ANCHOR_TOP_LEFT, type: BMAP_NAVIGATION_CONTROL_SMALL})); 32 </script>
整体来看,api还是挺丰富的,支持在上面增加各种文本标签、marker、覆叠物等……
API帮助文档地址:http://developer.baidu.com/map/reference/index.php
之前就很想做一个应用,用于标记自己去过的各种地点,或者是做特定的地点分布(如贫困留守儿童分布)和查询的应用,这下子看是没有什么大问题了。
另外,正常的gps坐标和百度坐标是需要转换的,并且每次转换的结果会不一样,有2米内的误差。
转换服务地址
http://api.map.baidu.com/geoconv/v1/?
组成说明:
域名:api.map.baidu.com
服务名:geoconv
服务版本号:v1
同样,也是需要密钥的。
详细参考说明:http://lbsyun.baidu.com/index.php?title=webapi/guide/changeposition
如果之后嵌入式领域普及使用html5,应该可以很轻松地让嵌入式设备 制作出自己定制的地图应用。