Я написал сообщение, но не получил ответа. Я новичок в листовке и не знаю, что происходит и почему. Я считаю, что добавил все, что говорится в документах, но все еще получаю сообщение об ошибке.
<link rel = "stylesheet" href = "https://unpkg.com/[email protected]/dist/leaflet.css" />
<script src = "https://unpkg.com/[email protected]/dist/leaflet.js"></script>
import L from 'leaflet';
ERROR TypeError: Cannot read property 'control' of undefined
Мой код здесь:
var polylineRouteB = L.Routing.control({...});





Чтобы ваш класс 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>
Также обратите внимание, что его библиотека не разрешает неограниченное количество запросов к серверу, таким образом, часто возвращает 429 HTTP-ответов.
нужно расширение углового модуля?