我发表了一个帖子,但没有得到任何回应。我刚接触传单,不知道发生了什么或为什么。我相信我已经添加了文档说要添加的所有内容,但仍然出现错误。
<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:无法读取未定义的属性“控件”
我的代码在这里:
var polylineRouteB = L.Routing.control({...});
答案 0 :(得分:0)
为了确保您的L.Routing类未定义,您需要获取对地图的引用,并在加载地图时在地图上使用它,但是在此步骤之前,您需要配置angular.json在资产文件夹中搜索标记图标,否则为this issue arises。
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响应。