我已使用以下代码在地图上显示了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);
}
现在,我想更改添加的此标记的颜色,或者想更改图标。
有人可以告诉我该怎么办吗?
答案 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搜索。