From 7a4a7b55cab5a556ae0857c1c16c5e46035c043e Mon Sep 17 00:00:00 2001 From: Ogoun Date: Sat, 18 May 2024 18:47:39 +0300 Subject: [PATCH] Map. Show selected points. --- src/js/index.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/js/index.js b/src/js/index.js index f552373..334bde0 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -25,6 +25,7 @@ class WaypointsData { const lat = parseFloat(loc[0].trim()) const lon = parseFloat(loc[1].trim()) this.markersData.push({ + id: point_counter, regionId: r_idx, location: [lat, lon], tooltip: { @@ -119,6 +120,22 @@ function reInitMap(regionId) { }).dxMap('instance'); } +function reInitMapByPoints(indexes) { + const mapWidget = $('#map').dxMap({ + provider: 'bing', + apiKey: { + bing: 'AnpoY0kAA4Kk5A045nQxyVbrlkNTgOuMVBitLxN_iLnZdtONf21HxUTzXwNIebES', + }, + zoom: 11, + height: 440, + width: 760, + controls: true, + markerIconSrc: markerUrl, + markers: waypoints.getMarkers().filter(p => indexes.includes(p.id)), + type: 'roadmap' + }).dxMap('instance'); +} + // Пересоздание списка точек указанного региона, для выбора мест к посещению function rebuildRegionPointsList(regionId) { if (regionPointsWidget) { @@ -376,6 +393,7 @@ function recalculateWaypoints(waypoints) { // Одна точка, просто ее выводим showTravelPoints([waypoints[0].id]); + reInitMapByPoints([waypoints[0].id]); } else { var start = waypoints[0]; var end = waypoints[waypoints.length - 1]; @@ -384,15 +402,18 @@ function recalculateWaypoints(waypoints) { // Две точки, старт и стоп, выводим без расчета showTravelPoints([waypoints[0].id, waypoints[1].id]); + reInitMapByPoints([waypoints[0].id, waypoints[1].id]); } else if (waypoints.length == 3) { // Три точки, старт, стоп и промежуточная выводим без расчета showTravelPoints([waypoints[0].id, waypoints[1].id, waypoints[2].id]); + reInitMapByPoints([waypoints[0].id, waypoints[1].id, waypoints[2].id]); } else { // применяем лучшие поиск из 200.000 лучших вариантов (9! = 362880, берем такого порядка число чтобы не грузить браузер расчетами) let path_indexes = stochasticPathFind(waypoints, true, true); showTravelPoints(path_indexes); + reInitMapByPoints(path_indexes); } } }