JS 百度地图导航
上一篇文章中我们就简单的学习了HTML5 地理定位,那么今天告诉大家我在项目中遇到的一个问题吧,就是怎么实现点击一个按钮就可以调到百度地图,并且获取到你当前的位置,并且导航到指定的地方去。
一、获取目的地坐标
打开百度地图API 鼠标点击拾取坐标网页,http://api.map.baidu.com/lbsapi/getpoint/index.html,通过先缩小再放大,定位到拾取坐标的建筑物。
以北京的朝阳公园为例,定位如下:
鼠标点击的位置就是朝阳公园的坐标:
116.488543, 39.949804 //这分别表示经度和纬度。
二、百度地图公交、驾车、步行导航
导航接口为 :
- http://api.map.baidu.com/direction //PC&Webapp服务地址
具体的参数问题请看API:
- http://developer.baidu.com/map/wiki/index.php?title=uri/api/web
示例
http://api.map.baidu.com/direction?origin=latlng:34.264642646862,108.95108518068|name:我家&destination=大雁塔&mode=driving®ion=西安&output=html&src=yourCompanyName|yourAppName
//调起百度PC或Web地图,展示”西安市”从(lat:34.264642646862,lng:108.95108518068 )”我家”到”大雁塔”的驾车
路线。
我在项目中要做的是获取当前的位置,然后导航到指定的项目如下:
<script> var x=document.getElementById("demo"); function getLocation(){ if (navigator.geolocation){ navigator.geolocation.getCurrentPosition(showPosition); }else{ x.innerHTML="Geolocation is not supported by this browser."; } } function showPosition(position){ x.innerHTML="Latitude: " + position.coords.latitude + "<br />Longitude: " + position.coords.longitude; window.location.href="http://api.map.baidu.com/direction?origin=latlng:"+position.coords.latitude+","+position.coords.longitude+"|name:我家&destination=侨鑫汇悦台&mode=driving®ion=广州&output=html&src=yourCompanyName|yourAppName"; } </script>
很显然我们实现的就是两个步骤
- getLocation() —> JS 利用html5 地理定位功能,获取当前的经纬度
- showPosition()—>根据经纬度和百度API 拼接成自己的URL
实现的效果如图所示
这个就是可以在移动端或者PC都可以实现的导航到指定位置的功能。
PS: 其实这个功能比较简单,百度的API可以实现的功能很强大,有兴趣的伙伴可以自己去研究一下。需要demo加QQ自己下载吧,祝学习愉快。
很多小伙伴找我要demo,今天正好有时间我就稍微的整理了一下。(ps:我一直是很懒的。)需要的自己下载吧! 移动端的需要部署到自己的服务器上看的哦!