From 4a836815f12e8ba717702cc8ed431e1b4f96134c Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期五, 25 四月 2025 13:55:34 +0800 Subject: [PATCH] 新增内部线索相关管理逻辑 --- src/components/map/baseMapUtil.js | 63 +++++++++++++++++++++++-------- 1 files changed, 46 insertions(+), 17 deletions(-) diff --git a/src/components/map/baseMapUtil.js b/src/components/map/baseMapUtil.js index 735b58e..ce3ad05 100644 --- a/src/components/map/baseMapUtil.js +++ b/src/components/map/baseMapUtil.js @@ -80,21 +80,31 @@ }); }, + addMarker(lnglat) { + const marker = new AMap.Marker({ + position: lnglat + }); + map.add(marker); + this.setCenter(lnglat); + return marker; + }, + + setCenter(lnglat) { + map.setCenter(lnglat); + }, + /** * 缂╂斁鍦板浘鍒板悎閫傜殑瑙嗛噹绾у埆 */ - setFitView(overlays, type = 0) { + setFitView(...overlays) { const _overlays = toRaw(overlays); - switch (type) { - case 0: - map.setFitView([_overlays]); - break; - case 1: - map.setFitView(_overlays); - break; - default: - map.setFitView([_overlays]); - break; + map.setFitView(_overlays, true, [60, 60, 500, 60], 14.5); + }, + + addView(overlays) { + if (overlays) { + const _overlays = toRaw(overlays); + map.add(_overlays); } }, @@ -102,8 +112,10 @@ * 绉婚櫎瑕嗙洊鐗� */ removeView(overlays) { - const _overlays = toRaw(overlays); - map.remove(_overlays); + if (overlays) { + const _overlays = toRaw(overlays); + map.remove(_overlays); + } }, /** @@ -117,8 +129,10 @@ /** * 楂樺痉鍦板浘鍧愭爣杞珿PS鍧愭爣绠楁硶 */ - gcj02towgs84(lng, lat) { + gcj02towgs84(_lng, _lat) { // lat = +latlng = +lng + const lng = parseFloat(_lng) + const lat = parseFloat(_lat) if (out_of_china(lng, lat)) { return [lng, lat]; } else { @@ -133,8 +147,10 @@ (((a * (1 - ee)) / (magic * sqrtmagic)) * PI); dlng = (dlng * 180.0) / ((a / sqrtmagic) * Math.cos(radlat) * PI); - let mglat = Math.round((lat * 2 - lat - dlat) * 1000000) / 1000000; - let mglng = Math.round((lng * 2 - lng - dlng) * 1000000) / 1000000; + let mglat = + Math.round((lat * 2 - lat - dlat) * 1000000) / 1000000; + let mglng = + Math.round((lng * 2 - lng - dlng) * 1000000) / 1000000; return [mglng, mglat]; } }, @@ -144,8 +160,10 @@ * @param lat * @returns {*[]} */ - wgs84togcj02(lng, lat) { + wgs84togcj02(_lng, _lat) { // lat = +latlng = +lng + const lng = parseFloat(_lng) + const lat = parseFloat(_lat) if (out_of_china(lng, lat)) { return [lng, lat]; } else { @@ -164,5 +182,16 @@ let mglng = Math.round((lng + dlng) * 1000000) / 1000000; return [mglng, mglat]; } + }, + gpsConvert(gps) { + return new Promise((reject) => { + // 鍙傛暟璇存槑锛氶渶瑕佽浆鎹㈢殑鍧愭爣锛岄渶瑕佽浆鎹㈢殑鍧愭爣绫诲瀷锛岃浆鎹㈡垚鍔熷悗鐨勫洖璋冨嚱鏁� + AMap.convertFrom(gps, 'baidu', function (status, result) { + if (result.info === 'ok') { + var lnglats = result.locations; // 杞崲鍚庣殑楂樺痉鍧愭爣 Array.<LngLat> + reject(lnglats[0]); + } + }); + }); } }; -- Gitblit v1.9.3