Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.04.2021, 13:09
Новичок на форуме
Отправить личное сообщение для jazz13666 Посмотреть профиль Найти все сообщения от jazz13666
 
Регистрация: 09.04.2021
Сообщений: 2

Помогите с 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();
Ответить с цитированием
  #2 (permalink)  
Старый 11.04.2021, 14:54
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

jazz13666,
можно расстояние измерять между точками
https://leafletjs.com/reference-1.7.1.html#map-distance
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
google map API bravoo Элементы интерфейса 1 05.11.2018 01:24
Помогите с XML API POST drip Общие вопросы Javascript 0 21.07.2018 13:59
setTimeout. Помогите решить проблемку. Куча запросов к API VK. maks.portnyagin Общие вопросы Javascript 1 18.04.2015 22:36
Запуск ролика Youtube через API. Помогите пожалуйста ABabiy Общие вопросы Javascript 0 27.02.2015 09:53
History API. Помогите решить проблему InviS Events/DOM/Window 2 16.10.2011 14:34