首页 > 解决方案 > 将传单中的自定义图标添加到 geojson 文件

问题描述

我得到以下代码

var Iconcm = L.icon({
iconUrl: 'customicon.png',
iconSize: [25, 25],
iconAnchor: [22, 94],
popupAnchor: [-10, -95]
});



$.ajax({
        dataType: "json",
        url: "pc.geojson",
        success: function(data) {
                L.geoJson(data, {
                    onEachFeature: onEachFeature
                }).addTo(map);
        }
     }).error(function() {});


        function onEachFeature(feature, layer) {
      var lines = ('Field1: ' + feature.properties.f1 + '<br>' + 'Field2: ' + feature.properties.f2)

            layer.bindPopup(lines);
        };

我希望能够使用Iconcm而不是默认的蓝色标记。我已经尝试了几乎所有在互联网上找到的方法都无济于事。我是 javascript 的新手,甚至是 AJAX 的新手。上面的代码是我的 geojson 文件实际工作的唯一方式,所以我更愿意保持这种方式。此外,将来我希望能够根据一个字段中的功能属性拥有不同的图标。因此,例如 if feature.properties.f3is Type1be customicon1Type2iscustomicon2等。有没有办法做到这一点?谢谢!

标签: javascriptleafletgeojson

解决方案


您可以使用一种方法setIcon 。

如果层实际上是 L.Marker,你想测试你只调用它

function onEachFeature(feature, layer) {
  if (layer instanceof L.Marker) {
    layer.setIcon(Iconcm)
  }
// ...

推荐阅读