高德地图和百度地图接口封装遇到的问题(三):参数集中插入参数以及引用未定义参数
生活随笔
收集整理的這篇文章主要介紹了
高德地图和百度地图接口封装遇到的问题(三):参数集中插入参数以及引用未定义参数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.向參數集中插入新參數:
? ? ? ?由于要將高德地圖和百度地圖提供的方法封裝成一個統一的方法,而對于某些功能來說可能傳進來的參數個數不一樣,比如下面的繪制折線功能:
//高德地圖// 折線的節點坐標數組,每個元素為 AMap.LngLat 對象 var path = [new AMap.LngLat(116.368904,39.913423),new AMap.LngLat(116.382122,39.901176),new AMap.LngLat(116.387271,39.912501),new AMap.LngLat(116.398258,39.904600) ];// 創建折線實例 var polyline = new AMap.Polyline({path: path, borderWeight: 2, // 線條寬度,默認為 1strokeColor: 'red', // 線條顏色lineJoin: 'round' // 折線拐點連接處樣式 });// 將折線添加至地圖實例 map.add(polyline); //百度地圖// 創建polyline對象 var pois = [new BMap.Point(116.350658,39.938285),new BMap.Point(116.386446,39.939281),new BMap.Point(116.389034,39.913828),new BMap.Point(116.442501,39.914603) ]; var polyline =new BMap.Polyline(pois, {enableEditing: false,//是否啟用線編輯,默認為falsestrokeWeight:'8',//折線的寬度,以像素為單位strokeOpacity: 0.8,//折線的透明度,取值范圍0 - 1strokeColor:"#18a45b" //折線顏色 });map.addOverlay(polyline); //增加折線可以看出高德地圖需要傳入一個包含點數組的參數集,百度地圖需要擦傳入點數組和一個參數集。如果要統一的話,可以直接將點數組和參數集暴露出來,newPolyline(pointsArr,options){? }
對于百度來說就直接在方法里面:return new BMap.Polyline(pointsArr,options);
而對于高德來說就需要先把點數組傳進options中:options["path"]=pointsArr;? //這個就是向參數集中加入參數
return new AMap.Polyline(pointsArr,options);
2.參數集中引用一個未定義的參數
function test() {let options={enable:1,a:true}let poi=options.b;} 直接調用test函數不會報錯,通過console.log(options.b);輸出為undefined?
總結
以上是生活随笔為你收集整理的高德地图和百度地图接口封装遇到的问题(三):参数集中插入参数以及引用未定义参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高德地图和百度地图接口封装遇到的问题(二
- 下一篇: ArcGIS中加载模块时dojo/dom