【发布时间】:2017-02-17 00:12:49
【问题描述】:
编辑:这是一个 jsfiddle 模型:https://jsfiddle.net/6t8gnegf/
我有一张地图外的位置表,当鼠标悬停在相应的表元素上时,我希望突出显示每个区域。因此,我首先列出了 geojson 层,以 name 属性为键:
var layarr = {}
for (i=0;i<listOfNames.length;i++) {
for (var prop in geojson['_layers']) {
if (!geojson['_layers'].hasOwnProperty(prop)) {
continue;
}
if (geojson['_layers'][prop]["feature"]["properties"]["name"]==listOfNames[i]) {
layarr[listOfNames[i]] = geojson['_layers'][prop]
}
}
}
然后我调用这个函数:
function highlight(name) {
var laytouse = layarr[name]
laytouse.setStyle(highlightStyle)
}
什么都没有发生,甚至没有错误。
当鼠标悬停在地图上的实际区域时,我已经有了一个高亮功能:
function highlightFeature(e) {
var layer = e.target;
layer.setStyle(highlightStyle);
}
调用方式如下:
function onEachFeature(feature, layer) {
layer.on({
mouseover: highlightFeature,
mouseout: resetHighlight,
});
}
geojson=L.geoJson(neighbData, {style: style,
onEachFeature: onEachFeature
}).addTo(mymap);
即使我直接在控制台上做这样的事情:
layarr[name].setStyle({fillOpacity: 1});
我仍然一无所获。似乎我以某种方式获取了错误的图层,但该图层具有预期的 setStyle() 方法,并且我没有收到任何控制台错误。
编辑:jsfiddle 模型:https://jsfiddle.net/6t8gnegf/
【问题讨论】:
-
你能分享一个要点或jsfiddle吗?
-
嗨菲利普,我在这里做了一个模型:jsfiddle.net/6t8gnegf
标签: javascript leaflet