hbuilder ios 离线打包框架(适配iphonex)集成高德地图总结:
1.目前hbuilder内置的是百度地图,百度地图存在一定的缺陷,打开时页面会黑一下,这是一个官方的bug,目前无法解决,只有换成高德地图了。
2.需要到苹果申请对应的bundleID,再到高德地图官网申请key,如果没有这个key,到时候你的地图会加载不出来的。
3.在xcode内添加这些库,此处基本不要按照dcould这里提示去高德地图官网查看,要不会绕大弯子.
我们要做的是按照他们给出的excel清单来配置地图即可:如图:
5,在xcode里面配置高德的key
6.这也是最为关键的一步,当你配置及完成是会发现高德地图还是没有出来,为什么呢,配置不对吗,其实不是的,还需要删掉百度地图的一个静态库才可以。
这样高德地图就配置Ok了。
下面,我们来说说定位,轨迹,导航这三个问题:
定位:plus.geolocation.getCurrentPosition和map.getUserLocation
这两个方法都可以定位,前者可以返回详细的地理坐标信息,后者只可以返回经纬度。
轨迹:
//折线轨迹 这里需要将多个点连起来就会
function polyLine() {
var points = [new plus.maps.Point(103.9109733, 36.0427467), new plus.maps.Point(103.9091067, 36.04852), new plus.maps.Point(103.9113867, 36.0472933), new plus.maps.Point(103.9096267, 36.05072), new plus.maps.Point(103.9011733, 36.0505733), new plus.maps.Point(103.8949667, 36.04713), new plus.maps.Point(103.8855533, 36.0540267), new plus.maps.Point(103.8785533, 36.0560033), new plus.maps.Point(103.8790133, 36.0569467), new plus.maps.Point(103.8808467, 36.0531), new plus.maps.Point(103.8818933, 36.0527933), new plus.maps.Point(103.8795867, 36.05642), new plus.maps.Point(103.883132, 36.054494)];
var polylineObj = new plus.maps.Polyline();
polylineObj.setPath(points);
polylineObj.setStrokeColor("#0327fb");
polylineObj.setLineWidth(10);
map.addOverlay(polylineObj);
}
导航:这里需要有开始地点和目标地点
//导航
function walkSearch() {
var searchObj = new plus.maps.Search(map);
searchObj.walkingSearch(new plus.maps.Point(parseFloat(103.890256), parseFloat(36.060278)), "", new plus.maps.Point(parseFloat(103.9109733), parseFloat(36.0427467)), "");
searchObj.onRouteSearchComplete = function(state, result) {
if(state == 0) {
console.log('aa==' + JSON.stringify(result.getRoute(0)));
map.addOverlay(result.getRoute(0));
var d = result.getRoute(0).distance;
var time = result.getRoute(0).duration;
console.log("距离:" + d);
console.log('时间:' + time);
} else {
alert("检索失败");
}
}
}
网友评论