使用的百度地图。必须先使用百度地图获取目标位置和使用百度地图获取目标位置,然后在通过百度地图的获取我和目标的位置。由于异步的原因,所以我使用了定时器解决,不过性能肯定不好,如何使用async await或者promise代替定时器呢?
代码片段如下:
// 获取目标位置
var myGeo = new BMap.Geocoder();
// 根据中地址名 查经纬度
myGeo.getPoint(scope.targetname, function(point){
if (point) {
scope.target = point;
}else{
toast("您选择地址没有解析到结果!");
}
}, scope.cityname);
// 获取我的位置
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function(r){
if(this.getStatus() == BMAP_STATUS_SUCCESS){
// alert('您的位置:'+r.point.lng+','+r.point.lat);
scope.myadd = new BMap.Point(r.point.lng,r.point.lat);
// console.log(scope.myadd,"我的位置")
}
else {
alert("定位失败");
}
},{enableHighAccuracy: true})
// 获取我和目标的位置
setTimeout(function(){
if(scope.myadd!=""&&scope.target!=""){
var map = new BMap.Map("l-map");
map.centerAndZoom(new BMap.Point(scope.target.lng,scope.target.lat), 11);
var walking = new BMap.WalkingRoute(map, {renderOptions: {map: map, panel: "r-result", autoViewport: true}});
walking.search(scope.myadd, scope.target);
}
}, 1000);
倚天杖
慕慕森
相关分类