leaflet - 仅为某些 *.geojson 对象获取覆盖控制
问题描述
我阅读并格式化了我的功能集:
function onEachFeature(feature, layer) {
if (feature.properties.popupContent == null)
{return null}
else
{return layer.bindPopup(feature.properties.popupContent)};
};
function MarkerStyle (feature,latlng) {
if (feature.properties.markerSymbol == null)
{return L.marker(latlng);}
else
{return L.marker(latlng, {icon: L.icon({iconUrl:
feature.properties.markerSymbol})});}
};
var daten = $.ajax(overlay).done(function(data) {
data = JSON.parse(data);
daten = L.geoJson(data,
{pointToLayer: MarkerStyle,
onEachFeature: onEachFeature}).addTo(map);
return daten});
L.control.layers(baseLayers, overlayMaps).addTo(map);
我的特征集合中有点和多边形。如何仅为多边形添加叠加控件?我尝试使用过滤器,但没有任何效果。感谢您阅读代码!
格鲁斯,笨蛋
谢谢,我现在明白了,过滤功能仅用于减少地图上显示的特征。正确的?这不是我的本意。
我想要对特征集合中的每个多边形进行控制。我现在尝试:
var polygons = L.geoJSON();
var overlayLayers = null;
var controls = L.control.layers(baseLayers,overlayLayers).addTo(map);
function onEachFeature(feature, layer) {
if(feature.properties.control != null)
{polygons.addData(feature)
.bindPopup(feature.properties.popupContent);
polygons.addTo(map);
polygon = polygons;
controls.addOverlay(polygon,feature.properties.control);
polygon = null;
};
if (feature.properties.popupContent == null)
{return null}
};
到目前为止,这有效,我得到了每个多边形的控件。但是,如果我停用所有多边形控件,多边形只会消失。我想停用单个多边形!
格鲁斯,笨蛋
解决方案
我现在找到了该任务的解决方案:
var overlayLayers = null;
var controls = L.control.layers(baseLayers, overlayLayers).addTo(map);
function onEachFeature(feature, layer) {
var ObjektLayer = L.geoJSON();
ObjektLayer.addData(feature);
if (feature.geometry.type == "Polygon" )
{if (feature.properties.control != null)
{controls.addOverlay(ObjektLayer,feature.properties.control);
};
if (feature.properties.popupContent != null)
{ObjektLayer.bindPopup(feature.properties.popupContent);
};
ObjektLayer.addTo(map);
};
};
格鲁斯,笨蛋
推荐阅读
- r - 使用 map_lgl 改变新变量
- c# - 使用 NetOfficeFW 将 DataGridView 导出到 Excel
- excel - 如何在此查找中引入多个列?
- windows-10 - 如何在 Windows 10 中将 gcloud 添加到路径
- react-native - 无法编译 React Native Web
- asp.net - B2C 自定义政策“忽略”索赔交换
- grails - Grails Spring 安全性
- symfony - Symfony 4:执行独立服务而不在某处特别引用它
- sql-server - TSQL - 向上/向下舍入到最接近的 SECOND
- vb.net - 如何将事件添加到动态创建的 PictureBox?(Visual Basic)