我在地图上和鼠标悬停时有一些标记,我想在L.control中显示信息。 example在highlightFeature()
中为我的L.control提供样式时,类似的操作在layer.setStyle不是一个函数。我在做错什么或有什么解决方法。
var info = L.control();
info.onAdd = function (map) {
this._div = L.DomUtil.create('div', 'info');
this.update();
return this._div;
};
info.update = function (props) {
console.log(props)
this._div.innerHTML = 'bjkbjk';
};
function highlightFeature(e) {
var layer = e.target;
console.log('hey')
layer.setStyle({
weight: 5,
color: '#666',
dashArray: '',
fillOpacity: 0.7
});
if (!L.Browser.ie && !L.Browser.opera && !L.Browser.edge) {
layer.bringToFront();
}
console.log(layer.feature.properties);
info.update(layer.feature.properties);
}
function resetHighlight(e) {
//stateLayer.resetStyle(e.target);
info.update();
}
function zoomToFeature(e) {
map.fitBounds(e.target.getBounds());
}
function onEachFeature(feature, layer) {
layer.on({
mouseover: highlightFeature,
mouseout: resetHighlight,
click: zoomToFeature
});
}
subset_layer = L.geoJson(subsetCollection,{onEachFeature: onEachFeature});
答案 0 :(得分:0)
我认为您没有在项目中正确引用leaflet.js
个lib文件。
setStyle
是该库的method。
我在这里找到了承诺的教程: https://leafletjs.com/examples/quick-start/
请检查您是否包含此脚本参考。
<!-- Make sure you put this AFTER Leaflet's CSS -->
<script src="https://unpkg.com/leaflet@1.3.4/dist/leaflet.js"
integrity="sha512-nMMmRyTVoLYqjP9hrbed9S+FzjZHW5gY1TWCHA5ckwXZBadntCNs8kEqAWdrb9O7rxbCaA4lKTIWjDXZxflOcA=="
crossorigin=""></script>