Я пытаюсь нарисовать линию Дуная в 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);

Он просто отображается как синий по умолчанию. Как я могу это изменить?

0
Theodcyning 27 Июл 2020 в 21:35

1 ответ

Лучший ответ

Если вы хотите установить стиль после загрузки, вам нужно сделать это в прослушивателе событий 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

1
kaveh 27 Июл 2020 в 19:26