如何与从 Leaflet 中的 .kml 文件绘制的邮政编码叠加层进行交互

How to interact with zipcode overlay drawn from .kml file in Leaflet

我有一个 .kml 文件,其中包含我已加载到我的 Leaflet webapp 中的邮政编码多边形。我想对形状进行一些样式设置和交互。我用来绘制它们的代码很简单:

var mymap = L.map('mapid').setView([45.2271, -80.8431], 10);
omnivore.kml('my-file.kml').addTo(mymap);

我想使用 jQuery 或其他一些库来进行交互。大概是通过将某种 class 或 id 附加到形状上。

有谁知道这种方法是否可行?

您不需要 Jquery 或任何其他库。只需传递一个自定义 L.GeoJSON 层,您就可以使用它的所有功能,例如样式和交互:

omnivore.kml('data.kml', null, new L.GeoJSON(null,{
    style: function () {
        return {
            color: 'red'
        }
    },
    onEachFeature: function (feature, layer) {
        layer.on('click', function () {
            alert('Clicked!');
        });
    }
})).addTo(map);

参考:http://leafletjs.com/reference-1.2.0.html#geojson

教程:http://leafletjs.com/examples/geojson/