Leaflet标记符号

7

我是一个新手,正在尝试在leaflet中显示标记。教程似乎对我不起作用。地图可以正常显示,但我只是无法显示标记。 以下是我的示例代码:

wax.tilejson('http://localhost:8888/v2/DigitalHumanities.json',
  function(tilejson) {
        var map = new L.Map('map-div')
            .addLayer(new wax.leaf.connector(tilejson))
            .setView(new L.LatLng(-17.1828,137.4609), 4);

    var markers = new L.marker(-17.1828,137.4609);
    map.addLayer(markers);

    var markerx = new L.marker(137.4609,-17.1828);
    map.addLayer(markerx);

  });

我已经尝试了教程中的示例,例如:.addTo(map);map.addLayer(markers);等。

5个回答

14

应该使用 L.marker 构造函数来创建标记:

var markers = L.marker([-17.1828,137.4609]);
map.addLayer(markers);

你可以在这里查看 API 参考文档 here


那个 new 是不是应该在这里?它应该是一个工厂方法,对吧。 - spinkus

1
创建leaflet标记的实际语法是:
L.marker(<LatLng> latlng, <Marker options> options? );

你可以在这里查看API参考文档。
以下是您的代码

正确的代码

wax.tilejson('http://localhost:8888/v2/DigitalHumanities.json',
  function(tilejson) {
        var map = new L.Map('map-div')
            .addLayer(new wax.leaf.connector(tilejson))
            .setView(new L.LatLng(-17.1828,137.4609), 4);

    var markers = new L.marker([-17.1828,137.4609],{clickable:true});
    map.addLayer(markers);

    var markerx = new L.marker([137.4609,-17.1828]);
    map.addLayer(markerx);

  });

1

0

您可以通过使用工厂或类的'new'关键字来实现(我相信工厂也是这样做的,区别在于使用的大小写不同)。

我相信这两种方式应该以相同的方式工作:

var markerx = new L.Marker(L.latLng(137.4609,-17.1828));
map.addLayer(markerx);

.

var markerx = L.marker(L.latLng(137.4609,-17.1828));
map.addLayer(markerx);

但是你不能将它们结合在一起。


0
let markers = L.marker([-17.1828,137.4609]);

或者

let markers = L.marker({lat: -17.1828,lng: 137.4609});`

那么:

map.addLayer(markers);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接