Листовка Свойство-Маршрутизация-не-существует-по-типу-типу-импорта
Я сделал сообщение, но не получил никаких ответов. Я новичок в листовке и не знаю, что происходит и почему. Я полагаю, что я добавил все, что говорится в документах, но я все еще получаю ошибку.
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.4/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet@1.3.4/dist/leaflet.js"></script>
import L from 'leaflet';
ОШИБКА TypeError: Невозможно прочитать свойство 'control' из неопределенного
Мой код здесь:
var polylineRouteB = L.Routing.control({...});
2 ответа
Чтобы ваш класс L.Routing не был неопределенным, вам нужно получить ссылку на карту и использовать ее там, когда карта загружена, но перед этим шагом вам нужно настроить angular.json для поиска в папке ваших ресурсов значков маркеров, в противном случае это проблема возникает.
import {
latLng,
tileLayer,
Icon, icon, Marker
} from 'leaflet';
import 'leaflet';
import 'leaflet-routing-machine';
declare let L;
...
// Override default Icons
private defaultIcon: Icon = icon({
iconUrl: 'assets/marker-icon.png',
shadowUrl: 'assets/marker-shadow.png'
});
ngOnInit() {
Marker.prototype.options.icon = this.defaultIcon;
}
onMapReady(map: L.Map) {
L.Routing.control({
waypoints: [
L.latLng(57.74, 11.94),
L.latLng(57.6792, 11.949)
],
routeWhileDragging: true
}).addTo(map);
}
шаблон
<div style="height: 800px;"
leaflet
[leafletOptions]="options"
(leafletMapReady)="onMapReady($event)">
</div>
Вы можете увидеть пошаговое "руководство" в следующей ссылке на github, следуя указаниям.
Также обратите внимание, что его библиотека не разрешает неограниченные запросы к серверу, поэтому она часто возвращает 429 HTTP-ответов.
Вы хотите установить это:
npm install --save @types/leaflet-routing-machine
Это решит мою проблему.