Помогите с API картами Leaflet
Добрый день, хочу сделать подобие навигатора на картах, не могу придумать как убрать промежуточную точку при ее достижении пользователем, изначально делал 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(); |
jazz13666,
можно расстояние измерять между точками https://leafletjs.com/reference-1.7.1.html#map-distance |
Часовой пояс GMT +3, время: 17:40. |