Map. Show selected points.

main
Ogoun 4 months ago
parent 4941a058bd
commit 7a4a7b55ca

@ -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);
}
}
}

Loading…
Cancel
Save

Powered by TurnKey Linux.