Добрый день, хочу сделать подобие навигатора на картах, не могу придумать как убрать промежуточную точку при ее достижении пользователем, изначально делал poliLine, в которой первая точка было текущей локацией пользователя, все ок, но когда нужно изогнуть путь, то промежуточная точка не убирается после того как пользователь ее пересекает, а ведет в обратную сторону.
Пробовал через routing-machine, в принципе идея плохая т.к. маршрут строится по дорогам, а мне нужен пешеходный маршрут, да и вообще его сложно контролировать, poliline был бы отличным решением, если бы получалось менять его координаты, на подобие:
изначально
var latlngs = [
(e.latlng), <!--Точка текущей локации, она же "А"-->
[37.77, -122.43], <!--Путевая точка для смены направления линии "В"-->
[34.04, -118.2] <!-- Конечная точка маршрута "С"-->
];
Не могу найти условия вхождения в радиус например, или какого то, при котором понятно, что точка "А", находится достаточно близко к "В", и конструкция заменялась бы на следующий вид.
var latlngs = [
(e.latlng), <!--Точка текущей локации, она же "А"-->
[34.04, -118.2] <!-- Конечная точка маршрута "С"-->
];
Сейчас маршрут через роутинг, это вообще дич полная, но для примера выложу.
function initializeMapAndLocator(){
var map = L.map('map_one')
googleStreets = L.tileLayer('https://{s}.google.com/vt/lyrs=m&x={x}&y={y}&z={z}',{
maxZoom: 20,
subdomains:['mt0','mt1','mt2','mt3']
}).addTo(map);
map.locate({
setZoom: 16,
watch:true,
enableHighAccuracy:true
});
var marker = L.marker([51.6693, 39.2051],).addTo(map);
function onLocationFound(e) {
L.Routing.control({
addWaypoints:false,
draggableWaypoints:false,
geocoder:false,
waypoints: [
L.latLng(e.latlng),
L.latLng(51.6693, 34.2051),
L.latLng(51.6693, 39.2051),
]
}).addTo(map);
}
map.on('locationfound', onLocationFound);
}
initializeMapAndLocator();