利用百度地图获取用户当前位置IP,并跳转百度地图导航

一,获取当前用户位置经纬度

注:第一步和第二步必须有

<!--第一步--><script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的ak密匙"></script>
<!--第二步--><div id="allmap"></div> 
<script language="javascript">
// 百度地图API功能
            var map = new BMap.Map("allmap");
            var point = new BMap.Point(116.331398,39.897445);
            map.centerAndZoom(point,12);

            var geolocation = new BMap.Geolocation();
            geolocation.getCurrentPosition(function(r){
                if(this.getStatus() == BMAP_STATUS_SUCCESS){
                    var mk = new BMap.Marker(r.point);
                    map.addOverlay(mk);
                    map.panTo(r.point);
                    alert('您的位置:'+r.point.lng+','+r.point.lat);
                    window.location.href = "http://api.map.baidu.com/direction?origin=latlng:"+r.point.lng+","+r.point.lat+"|name:您当前位置&desti"+
"nation=name:龙门洗车客栈|latlng:37.8565359152,112.6318703268&mode=driving&region=太原&output=html&src=yourCompanyName|yourAppName";
                }
                else {
                    alert('failed'+this.getStatus());
                }
            },{enableHighAccuracy: true})
            //关于状态码
            //BMAP_STATUS_SUCCESS    检索成功。对应数值“0”。
            //BMAP_STATUS_CITY_LIST    城市列表。对应数值“1”。
            //BMAP_STATUS_UNKNOWN_LOCATION    位置结果未知。对应数值“2”。
            //BMAP_STATUS_UNKNOWN_ROUTE    导航结果未知。对应数值“3”。
            //BMAP_STATUS_INVALID_KEY    非法密钥。对应数值“4”。
            //BMAP_STATUS_INVALID_REQUEST    非法请求。对应数值“5”。
            //BMAP_STATUS_PERMISSION_DENIED    没有权限。对应数值“6”。(自 1.1 新增)
            //BMAP_STATUS_SERVICE_UNAVAILABLE    服务不可用。对应数值“7”。(自 1.1 新增)
            //BMAP_STATUS_TIMEOUT    超时。对应数值“8”。(自 1.1 新增)
</script>

  在使用以上代码的过程中,需要由自己的一个密钥,如果您没有,那就需要申请一个了,地址:http://lbsyun.baidu.com/。

         将AK写入代码中,必须是写在你设置的被允许的域名或者IP白名单里的项目上你的AK才有效。

        注意:必须配置IP白名单,不配置是获取不到用户经纬度的。

二、百度地图公交、驾车、步行导航

导航接口为

使用实例将参数跟在a链接后面直接跳转:

window.location.href = "http://api.map.baidu.com/direction?origin=latlng:"+r.point.lng+","+r.point.lat+"|name:您当前位置&desti"+
"nation=name:龙门洗车客栈|latlng:37.8565359152,112.6318703268&mode=driving&region=太原&output=html&src=yourCompanyName|yourAppName";

http://api.map.baidu.com/direction   //PC&Webapp服务地址

参数名称参数说明是否必选备注
origin起点名称或经纬度,或者可同时提供名称和经纬度,此时经纬度优先级高,将作为导航依据,名称只负责展示。必选1、名称:天安门
2、经纬度:39.98871<纬度>,116.43234<经度>。
3、名称和经纬度:name:天安门|latlng:39.98871,116.43234
destination终点名称或经纬度,或者可同时提供名称和经纬度,此时经纬度优先级高,将作为导航依据,名称只负责展示。必选同上
mode导航模式,固定为transit、driving、walking,分别表示公交、驾车和步行必选 
region城市名或县名当给定region时,认为起点和终点都在同一城市,除非单独给定起点或终点的城市。 
origin_region起点所在城市或县同上 
destination_region终点所在城市或县同上 
output表示输出类型,web上必须指定为html才能展现地图产品结果。必选手机客户端忽略此参数
coord_type坐标类型,可选参数可选默认为bd09经纬度坐标。允许的值为bd09ll、bd09mc、gcj02、wgs84。bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托坐标,gcj02表示经过国测局加密的坐标,wgs84表示gps获取的坐标
zoom展现地图的级别,默认为视觉最优级别。可选 
src调用来源,规则:companyName|appName。必选 

 

三、微信消息封装  

注:第三步是微信消息,根据自己的需求拼接经纬度

根据上述消息,当收到微信地理地位坐标消息时,直接拼接出公交、驾车、步行的url,并将相应的url填在图文消息的链接中。

代码如下所示:

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值