如何从地图上的leaflet-knn更改结果的颜色

时间:2018-08-20 04:37:27

标签: leaflet

我已使用以下代码在地图上显示了Leaflet-knn的结果标记:

const myloc = new L.LatLng(13.7433242, 100.5421583);

var gjLayer = L.geoJson(testCities, {
    onEachFeature: function(feature, layer) {
        content = "<b>Name:</b> " + feature.properties.name;
        layer.bindPopup(content);
    }
});

var longitude = myloc.lng,
    latitude = myloc.lat;

var res = leafletKnn(gjLayer).nearest(
            [longitude, latitude], 5, distance);

for (i = 0; i < res.length; i++) {
    map.addLayer(res[i].layer);
}

现在,我想更改添加的此标记的颜色,或者想更改图标。

有人可以告诉我该怎么办吗?

1 个答案:

答案 0 :(得分:0)

对于结果的表示,Leaflet-knn是不可知的-它依赖于现有的L.Layer:先takes a L.GeoJSON as an input,然后再iterates through all its members才能{{3} }(对于折线和多边形),然后是fetch all their coordinates

单张knn搜索的结果包括实例化时通过的L.Layer原始L.GeoJSON

此后,您都可以将store a reference to the L.Layer for each of its coordinates标记为GeoJSON,或者在每次查询后为结果创建新的标记/符号。


现在,您的代码依赖于GeoJSON数据的默认符号化(将L.Marker实例化为L.Icon.Default来标记点)。我建议您在地图上显示L.GeoJSON的方法,以确保它看起来像您想要的(即使它是部分数据集),然后实施leaflet-knn搜索。