From 5945b8bcbc8c39b90cf5e1aef6cf057d5bda7337 Mon Sep 17 00:00:00 2001 From: "SmallChi(Koike)" <564952747@qq.com> Date: Tue, 13 Apr 2021 18:24:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9C=B0=E5=9B=BE=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E6=89=93=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/JTTools/Pages/Map.razor | 59 +++++++++++++++++++++++++++-------- src/JTTools/wwwroot/js/map.js | 19 +++++++++++ 2 files changed, 65 insertions(+), 13 deletions(-) diff --git a/src/JTTools/Pages/Map.razor b/src/JTTools/Pages/Map.razor index 3e8d5f4..aba89f0 100644 --- a/src/JTTools/Pages/Map.razor +++ b/src/JTTools/Pages/Map.razor @@ -76,36 +76,54 @@ return; } string[] arr = LngLat.Split(new string[]{ ",", ",", "|", ":" }, StringSplitOptions.RemoveEmptyEntries); - if (arr.Length == 2) + List wgs84s = new List(); + List gcj02s = new List(); + List bd09s = new List(); + for (var i=0;i< arr.Length; i=i+2) { - if(double.TryParse(arr[0], out double lng) && double.TryParse(arr[1], out double lat)) + if (double.TryParse(arr[i], out double lng) && double.TryParse(arr[i+1], out double lat)) { - if(e== "WGS84") + if (e == "WGS84") { - WGS84_LngLat = $"{lng},{lat}"; + wgs84s.Add(lng); + wgs84s.Add(lat); var gcj02 = Coordtransform.Wgs84togcj02(lng, lat); - GCJ02_LngLat = $"{gcj02[0]},{gcj02[1]}"; + gcj02s.Add(gcj02[0]); + gcj02s.Add(gcj02[1]); var bd09 = Coordtransform.Wgs84tobd09(lng, lat); - BD09_LngLat = $"{bd09[0]},{bd09[1]}"; + bd09s.Add(bd09[0]); + bd09s.Add(bd09[1]); } else if (e == "GCJ02") { - GCJ02_LngLat = $"{lng},{lat}"; + gcj02s.Add(lng); + gcj02s.Add(lat); var wgs84 = Coordtransform.Gcj02towgs84(lng, lat); - WGS84_LngLat = $"{wgs84[0]},{wgs84[1]}"; + wgs84s.Add(wgs84[0]); + wgs84s.Add(wgs84[1]); var bd09 = Coordtransform.Gcj02tobd09(lng, lat); - BD09_LngLat = $"{bd09[0]},{bd09[1]}"; + bd09s.Add(bd09[0]); + bd09s.Add(bd09[1]); } else if (e == "BD09") { - BD09_LngLat = $"{lng},{lat}"; + bd09s.Add(lng); + bd09s.Add(lat); + var wgs84 = Coordtransform.Bd09towgs84(lng, lat); - WGS84_LngLat = $"{wgs84[0]},{wgs84[1]}"; + wgs84s.Add(wgs84[0]); + wgs84s.Add(wgs84[1]); + var gcj02 = Coordtransform.Bd09togcj02(lng, lat); - GCJ02_LngLat = $"{gcj02[0]},{gcj02[1]}"; + gcj02s.Add(gcj02[0]); + gcj02s.Add(gcj02[1]); + } } } + WGS84_LngLat = string.Join(',', wgs84s); + GCJ02_LngLat = string.Join(',', gcj02s); + BD09_LngLat = string.Join(',', bd09s); } [JSInvokable] @@ -122,6 +140,21 @@ return; } string[] arr = GCJ02_LngLat.Split(',', StringSplitOptions.RemoveEmptyEntries); - await JsRuntime.InvokeVoidAsync("createMarker", arr); + if (arr.Length == 2) + { + await JsRuntime.InvokeVoidAsync("createMarker", arr); + } + else if(arr.Length > 2) + { + List> latlngs = new List>(); + for (var i = 0; i < arr.Length; i = i + 2) + { + List latlng = new List(); + latlng.Add(arr[i]); + latlng.Add(arr[i+1]); + latlngs.Add(latlng); + } + await JsRuntime.InvokeVoidAsync("createMarkers", latlngs); + } } } diff --git a/src/JTTools/wwwroot/js/map.js b/src/JTTools/wwwroot/js/map.js index 7007d6c..831b629 100644 --- a/src/JTTools/wwwroot/js/map.js +++ b/src/JTTools/wwwroot/js/map.js @@ -20,3 +20,22 @@ function createMarker(gcj02_lng,gcj02_lat) { window.map.add(marker); window.map.setFitView(marker); } + +function createMarkers(arr) { + console.debug("Markers", arr); + var lastMarker = null; + for (var i = 0; i < arr.length; i++) { + var item = arr[i]; + var marker = new AMap.Marker({ + position: new AMap.LngLat(item[0], item[1]), // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9] + icon: new AMap.Icon({ + imageSize: new AMap.Size(36, 36), + }) + }); + if ((arr.length - 1) == i) { + lastMarker = marker; + } + window.map.add(marker); + } + window.map.setFitView(lastMarker); +}