无感五 2017-11-22 04:03 采纳率: 50%
浏览 3161
已采纳

百度地图驾车路线API如何自动获取当前路线

 <html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
        body, html {width: 100%;height: 100%; margin:0;font-family:"微软雅黑";}
        #l-map{height:300px;width:100%;}
        #r-result,#r-result table{width:100%;}
    </style>

    <title>驾车导航的结果面板</title>
</head>
<body>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>
    <div id="l-map"></div>
    <div id="r-result"></div>
</body>
</html>
<script type="text/javascript">
    // 百度地图API功能
    var map = new BMap.Map("l-map");
    map.centerAndZoom(new BMap.Point(116.404, 39.915), 12);

    var driving = new BMap.DrivingRoute(map, {renderOptions: {map: map, panel: "r-result", autoViewport: true}});
    driving.search("中关村一街", "魏公村");
</script>


<script type="text/javascript">

/*************js实现*************/

$(document).ready(function(){

if(navigator.geolocation){

navigator.geolocation.getCurrentPosition(getPositionSuccess, getPositionError);

}else{

alert("您的浏览器不支持自动定位!");

}

});


/***用户定位成功**/
function getPositionSuccess(position){
var lat = position.coords.latitude;
var lng = position.coords.longitude;
var address;

//通过baiduMap API获取街道名称
var map = new BMap.Map("allmap");
var point = new BMap.Point(lng,lat);
var gc = new BMap.Geocoder();
gc.getLocation(point, function(rs){
  var addComp = rs.addressComponents;
  address = addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber;
  alert("address="+address);
});

alert("longitude="+lng+"  latitude="+lat);
}


/**用户定位失败**/
function getPositionError(error){
switch(error.code){
case error.TIMEOUT:
alert("连接超时,请重试");
break;
case error.PERMISSION_DENIED:
alert("您拒绝了使用位置共享服务,查询已取消");
break;
case error.POSITION_UNAVAILABLE:
alert("亲爱的火星网友,非常抱歉,我们暂时无法为您所在的星球提供位置服务");
break;
}
} 


</script>

请问这两段代码如何融合起来改为自动获取当前位置呢

  • 写回答

1条回答 默认 最新

  • Go 旅城通票 2017-11-22 04:08
    关注

    getPositionSuccess添加描出的代码,第一段的去掉

        /***用户定位成功**/
        function getPositionSuccess(position) {
            var lat = position.coords.latitude;
            var lng = position.coords.longitude;
            var address;
    
            //通过baiduMap API获取街道名称
            var map = new BMap.Map("allmap");
            var point = new BMap.Point(lng, lat);
            var gc = new BMap.Geocoder();
            gc.getLocation(point, function (rs) {
                var addComp = rs.addressComponents;
                address = addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber;
    
                alert("address=" + address);
                ///////////////////////////////////////////////////
                map.centerAndZoom(point, 12);
    
                var driving = new BMap.DrivingRoute(map, { renderOptions: { map: map, panel: "r-result", autoViewport: true } });
                driving.search(address, "魏公村");
    
                ///////////////////////////////////////////////////
            });
    
            alert("longitude=" + lng + "  latitude=" + lat);
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题