摘要:原文來(lái)自百度地圖根據(jù)已知坐標(biāo)畫(huà)點(diǎn)線,這兩天用到的,在這里做個(gè)筆記,方便自己查閱開(kāi)啟鼠標(biāo)滾輪縮放添加比例尺控件生成坐標(biāo)點(diǎn)畫(huà)線配置圖片畫(huà)圖標(biāo)創(chuàng)建標(biāo)注根據(jù)經(jīng)緯極值計(jì)算綻放級(jí)別。從網(wǎng)上復(fù)制沒(méi)有坐標(biāo),顯示全中國(guó)
原文來(lái)自 taoeer.top
百度地圖根據(jù)已知坐標(biāo)畫(huà)點(diǎn)線,這兩天用到的,在這里做個(gè)筆記,方便自己查閱!
var map = new BMap.Map("map"); var point = new BMap.Point(116.404, 39.915); map.centerAndZoom(point, 15); map.enableScrollWheelZoom(); // 開(kāi)啟鼠標(biāo)滾輪縮放 map.addControl(new BMap.ScaleControl()); // 添加比例尺控件 var pointStr = "104.038748,30.641821,104.047789,30.648128,104.063959,30.655336,104.067264,30.660307,104.067264,30.664438,104.064008,30.665316".split(","); var pointArr = []; for (var k = 0; k < pointStr.length; k += 2) { pointArr.push({ lng: pointStr[k], lat: pointStr[k + 1] }); } // 生成坐標(biāo)點(diǎn) var trackPoint = []; for (var i = 0, j = pointArr.length; i < j; i++) { trackPoint.push(new BMap.Point(pointArr[i].lng, pointArr[i].lat)); } map.centerAndZoom(trackPoint[0], 15); // 畫(huà)線 var polyline = new BMap.Polyline(trackPoint, { strokeColor: "#1869AD", strokeWeight: 3, strokeOpacity: 1 }); map.addOverlay(polyline); // 配置圖片 var size = new BMap.Size(26, 26); var offset = new BMap.Size(0, -13); var imageSize = new BMap.Size(26, 26); var icon = new BMap.Icon("./express-position.png", size, { imageSize: imageSize }); // 畫(huà)圖標(biāo) for (var i = 0, j = trackPoint.length; i < j; i++) { var marker = new BMap.Marker(trackPoint[i], { icon: icon, offset: offset }); // 創(chuàng)建標(biāo)注 map.addOverlay(marker); } //根據(jù)經(jīng)緯極值計(jì)算綻放級(jí)別。 (從網(wǎng)上復(fù)制) function getZoom(maxLng, minLng, maxLat, minLat) { var zoom = ["50", "100", "200", "500", "1000", "2000", "5000", "10000", "20000", "25000", "50000", "100000", "200000", "500000", "1000000", "2000000"]; // 級(jí)別18到3。 var pointA = new BMap.Point(maxLng, maxLat); // 創(chuàng)建點(diǎn)坐標(biāo)A var pointB = new BMap.Point(minLng, minLat); // 創(chuàng)建點(diǎn)坐標(biāo)B var distance = map.getDistance(pointA, pointB).toFixed(1); //獲取兩點(diǎn)距離,保留小數(shù)點(diǎn)后兩位 for (var i = 0, zoomLen = zoom.length; i < zoomLen; i++) { if (zoom[i] - distance > 0) { return 18 - i + 3; //之所以會(huì)多3,是因?yàn)榈貓D范圍常常是比例尺距離的10倍以上。所以級(jí)別會(huì)增加3。 } } } // (從網(wǎng)上復(fù)制) function setZoom(points) { if (points.length > 0) { var maxLng = points[0].lng; var minLng = points[0].lng; var maxLat = points[0].lat; var minLat = points[0].lat; var res; for (var i = points.length - 1; i >= 0; i--) { res = points[i]; if (res.lng > maxLng) maxLng = res.lng; if (res.lng < minLng) minLng = res.lng; if (res.lat > maxLat) maxLat = res.lat; if (res.lat < minLat) minLat = res.lat; } var cenLng = (parseFloat(maxLng) + parseFloat(minLng)) / 2; var cenLat = (parseFloat(maxLat) + parseFloat(minLat)) / 2; var zoom = getZoom(maxLng, minLng, maxLat, minLat); map.centerAndZoom(new BMap.Point(cenLng, cenLat), zoom); } else { //沒(méi)有坐標(biāo),顯示全中國(guó) map.centerAndZoom(new BMap.Point(103.388611, 35.563611), 5); } } setZoom(pointArr)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/91118.html
摘要:為什么使用騰訊地圖百度高德地圖,商業(yè)需要授權(quán)年。軌跡回放騰訊也有方法,我是參考高德的地圖對(duì)比騰訊地圖才知道怎么使用可能還是文檔不太熟,之前提交工單問(wèn)客服有沒(méi)有軌跡回放功能,客服直接回答沒(méi)有。 為什么使用騰訊地圖? 百度、高德地圖,商業(yè)需要授權(quán)5W/年。土豪可以直接使用百度、高德,文檔詳細(xì)方法全,騰訊免費(fèi)但是方法不全。 軌跡回放 騰訊也有方法,我是參考高德的地圖對(duì)比騰訊地圖才知道怎么使...
摘要:本文意在解決通過(guò)制定兩點(diǎn)坐標(biāo)獲取百度搜索的路徑結(jié)果信息,用途是重現(xiàn)路徑比如在上繪制軌跡顯示效果圖等。 本文意在解決通過(guò)制定兩點(diǎn)坐標(biāo)獲取百度搜索的路徑結(jié)果信息,用途是重現(xiàn)路徑(比如在mapv上繪制軌跡顯示效果圖等)。實(shí)現(xiàn)思路: 加載百度地圖所需的js引用; html布局用于顯示結(jié)果; 初始化百度地圖并加載到頁(yè)面上,給地圖對(duì)象添加點(diǎn)擊事件的監(jiān)聽(tīng); 實(shí)現(xiàn)地圖的點(diǎn)擊監(jiān)聽(tīng)方法,主要是獲取到點(diǎn)擊...
閱讀 2125·2021-11-19 09:58
閱讀 1713·2021-11-15 11:36
閱讀 2877·2019-08-30 15:54
閱讀 3396·2019-08-29 15:07
閱讀 2767·2019-08-26 11:47
閱讀 2818·2019-08-26 10:11
閱讀 2508·2019-08-23 18:22
閱讀 2754·2019-08-23 17:58