1

我发了一个帖子,但没有得到任何回复。我是传单的新手,不知道发生了什么或为什么。我相信我添加了文件说要添加的所有内容,但我仍然收到错误消息。

<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';

错误类型错误:无法读取未定义的属性“控制”

我的代码在这里:

var polylineRouteB = L.Routing.control({...});
4

1 回答 1

1

为了您的 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 响应。

于 2018-10-06T12:45:57.577 回答