Я только вижу, что L.Routing.control работает с версией 3, есть ли эквивалентная версия для v3? Я пытаюсь настроить маршрутизацию и направления между двумя точками.
L.Routing.control на реактивной листовке v3 с хуками
Ответы (1)
Вы можете создать свой собственный компонент для настройки маршрутизации между двумя точками, используя leaflet-routing-machine
:
Установите библиотеку:
npm i leaflet-routing-machine
Импортировать файл css библиотеки:
import "leaflet-routing-machine/dist/leaflet-routing-machine.css";
Импортируйте js-файл библиотеки:
import "leaflet-routing-machine";
Создайте пользовательскую композицию:
function Routing() {
const map = useMap();
useEffect(() => {
if (!map) return;
const routingControl = L.Routing.control({
waypoints: [L.latLng(57.74, 11.94), L.latLng(57.6792, 11.949)],
routeWhileDragging: true
}).addTo(map);
return () => map.removeControl(routingControl);
}, [map]);
return null;
}
затем используйте его как обычный компонент реагирующей листовки:
<MapContainer ...>
...
<Routing/>
</MapContainer>
person
kboul
schedule
18.05.2021
Привет! У меня нет доступа к L.Routing.control, я использую реактивную листовку 3.1, мне нужно понизить версию?
- person Ebizl; 18.05.2021
Вам необходимо установить библиотеку (
leaflet-routing-machine
) и импортировать ее, чтобы иметь доступ к L.Routing.control
. Это не имеет отношения к реагирующей листовке. Это отдельная библиотека. Вы уже упомянули об этом в своем вопросе, поэтому я думал, что вы знаете об этом.
- person kboul; 18.05.2021
мне потребовалось некоторое время, но похоже, что lrm не подключается к L, чтобы я мог получить доступ к Routing.control, какие-нибудь мысли о том, как это исправить?
- person Ebizl; 19.05.2021
Взгляните на демо. В нем есть весь необходимый код для запуска примера.
L.Routing.control
доступен, если вы установили и импортировали упомянутую ранее библиотеку. Это понятно?
- person kboul; 19.05.2021
Я решил проблему, с которой столкнулся в связи с этим сообщением leaflet-core-esm-pat" title="как исправить ошибку, не удалось скомпилировать модули узлов, реагировать на leaflet core esm pat">stackoverflow.com/questions/67552020/ Теперь я могу запустить тот же пример кода в моей локальной среде. Спасибо @kboul
- person Ebizl; 22.05.2021
Пожалуйста, примите ответ, если он помог вам решить вашу проблему
- person kboul; 22.05.2021