|
在wex5 用的定位是 引入cordova!cordova-plugin-geolocation。function success(data) { if (window.lon != "" && window.lat != "") {
window.lon = data.coords.longitude;
window.lat = data.coords.latitude;
alert(lon+""+lat);
}
}
function fail(msg) {
alert("错误消息:" + msg);
}
navigator.geolocation.getCurrentPosition(success, fail, null);
我调用的百度地图是根据demo中跟百度API实现的。
// 加载百度地图
Model.prototype.loadBaiduMap = function() {
var id = this.getIDByXID("baiduMap");
window._baiduInit = function() {
map = new BMap.Map(id, {
minZoom : 2,
enableMapClick : false
}); // 创建地图对象,可以设置地图缩放最大最小级别,设置是否显示POI点击
var geoc = new BMap.Geocoder();
var point = new BMap.Point(window.lon, window.lat);
var pointA = new BMap.Point((window.lon - 0.0010), window.lat);
map.centerAndZoom(point, 20);
map.enableScrollWheelZoom(true); // 设置允许鼠标滚轮缩放地图
map.enableContinuousZoom(); // 设置连续缩放
map.addControl(new BMap.NavigationControl()); // 添加平移缩放控件
map.addControl(new BMap.ScaleControl()); // 添加比例尺控件
map.addControl(new BMap.OverviewMapControl()); // 添加缩略地图控件
map.enableScrollWheelZoom(); // 启用滚轮放大缩小,默认禁用
map.enableContinuousZoom(); // 启用地图惯性拖拽,默认禁用
var marker = new BMap.Marker(point); // 创建标注
var markerA = new BMap.Marker(pointA); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中
map.addOverlay(markerA);
marker.setAnimation(BMAP_ANIMATION_BOUNCE); // 跳动的动画
markerA.addEventListener("click", getAttr);
function getAttr() {
var walking = new BMap.WalkingRoute(map, {
renderOptions : {
map : map,
panel : "r-result",
autoViewport : false
}
});
walking.search(point, pointA);
walking.
alert((map.getDistance(point, pointA)).toFixed(2) + ' 米。');
}
map.addEventListener("click", function(e) { // 增加鼠标点击事件
point = new BMap.Point(e.point.lng, e.point.lat);
geoc.getLocation(e.point, function(rs) {
var addComp = rs.addressComponents;
});
});
};
// 调用百度密钥
require([ 'http://api.map.baidu.com/api?v=1.4&ak=o9pzum8sF8s3wqodZnt9S5OsKlLdjOil&callback=_baiduInit' ], function() {
if (window.BMap && window.BMap.Map) {
window._baiduInit();
}
});
};
现在我碰到的问题是 有时候定位方法还没执行完 地图就加载了 所以定位不准确 。 当定位已经获取了经纬度坐标 再去加载图片那么定位很准确。
现在不知道怎么去判断先执行定位再执行地图。。 跪求大神,版主帮帮忙
|
|