如何使用 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
我正在尝试在 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