将鼠标悬停在传单标记上会显示错误layer.setStyle不是函数

时间:2018-12-05 09:42:14

标签: javascript leaflet geojson

我在地图上和鼠标悬停时有一些标记,我想在L.control中显示信息。 examplehighlightFeature()中为我的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});

1 个答案:

答案 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>