OSM标记和折线在同一阵列中

时间:2019-12-02 08:44:26

标签: javascript leaflet openstreetmap polyline

使用此代码,我在地图上获得了所有标记和弹出式窗口以及每个标记的编号。

 var polyline1 = [
        ['1', 44.772142, 17.208980],
        ['2', 44.774753, 17.207644],
        ['3', 44.773964, 17.199587],
        ['4', 44.770823, 17.199207],
        ['5', 44.771399, 17.195699],
    ];


    for (var i = 0; i < polyline1.length; i++) {
        var marker = L.marker([polyline1[i][1], polyline1[i][2]])
            .bindPopup(polyline1[i][0])
            .addTo(map);
    }

但是这里不能显示折线

  var polyline = L.polyline(polyline1, {
            color: 'red'
        })
        .addTo(map);

第二个选项是每个标记,但随后无法显示标记数量

polyline1.forEach(function(LatLng) {
         L.marker(LatLng)
         .addTo(map);

有什么办法可以组合一些东西来工作的??? 我严格需要在此处带有弹出式窗口或自定义标记的折线。

1 个答案:

答案 0 :(得分:0)

折线要创建数字为lat的线。

[lat,lng,alt]
['1', 44.772142, 17.208980]

仅使用latlngs创建一个数组:

 var polyline1 = [
        ['1', 44.772142, 17.208980],
        ['2', 44.774753, 17.207644],
        ['3', 44.773964, 17.199587],
        ['4', 44.770823, 17.199207],
        ['5', 44.771399, 17.195699],
    ];

var latlngs = [];
polyline1.forEach(function(data){
   latlngs.push([data[1],data[2]]);
}

 var polyline = L.polyline(latlngs, {
            color: 'red'
        }).addTo(map);