如何使用 Leaflet 中的 AJAX 调用更改从 GeoJSON 获取的线条的样式?

How to change the styling of a line taken from a GeoJSON with an AJAX call in Leaflet?

我正在尝试在 Leaflet 中设计一条在多瑙河河道上绘制的线条,但未能成功。线条呈现,但颜色没有改变。这是我正在使用的代码:

    var mymap = L.map('mapid').setView([48, 20], 5);
    var danubeData = new L.GeoJSON.AJAX("danuberiver.json");


  L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
    maxZoom: 18,
    id: 'mapbox/light-v10',
    tileSize: 512,
    zoomOffset: -1
  }).addTo(mymap);


  var danubeLine = danubeData.setStyle({color: 'black', weight: 3}).addTo(mymap);

它只是呈现为默认蓝色。我该如何更改?

如果您想在加载后设置样式,您需要在 layeradd 事件侦听器中进行,但您也可以将样式作为选项传递给 L.GeoJSON.AJAX:

var danubeData = new L.GeoJSON.AJAX("danuberiver.json", { style: {color: 'black', weight: 3} });

举个例子:https://codepen.io/kaveh/pen/GRoagxZ

插件 Github 页面上也有类似的问题:https://github.com/calvinmetcalf/leaflet-ajax/issues/5