как получить данные функции для L.geojson - PullRequest
0 голосов
/ 24 июня 2019

почему функция данных не может быть вызвана в l.geojson, и как я могу ее вызвать?

Я попытался создать переменную деревни, которая будет вызываться в данных l.geojson, для создания многоугольника, но данные не найдены, потому что он содержит фигурные скобки

$(document).ready(function() {
  var map = L.map("map", {
    zoomControl: true,
    maxZoom: 28,
    minZoom: 1
  }).fitBounds([ [-5.89182819599, 102.924994823],
                 [-3.71646322182, 107.177564198] ]);
  var hash = new L.Hash(map);
  map.attributionControl.addAttribution(
    '<a href="https://github.com/tomchadwin/qgis2web" target="_blank">qgis2web</a>'
  );
  var bounds_group = new L.featureGroup([]);
  var basemap0 = L.tileLayer(
    "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
    {
      attribution:
        '&copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors,<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>',
      maxZoom: 28
    }
  );
  basemap0.addTo(map);

  function style(d) {
    return {
      fillColor: d,
      weight: 2,
      opacity: 1,
      color: "white",
      dashArray: "3",
      fillOpacity: 0.7
    };
  }
  var desa = "{!! $des !!}";
  $.each(JSON.parse(desa), function desa(des_baru, i) {
    var id = i.gid;
    var nama = i.desa;
    var index = i.index;
    var geom = i.geo;
  });

  var des = new L.geoJson(geom, {
    attribution: '<a href=""></a>',
    style: style("black"),
    onEachFeature: des
  });
  bounds_group.addLayer(des);
  map.addLayer(des);

  function des(feature, layer) {
    layer.on({
      mouseout: function(e) {
        for (i in e.target._eventParents) {
          e.target._eventParents[i].resetStyle(e.target);
        }
      }
    });
    var popupContent =
      '<table> <id="table_wil" <tbody><tr><th scope="row">No:</th><td>' +
      [id] +
      '</td></tr><tr><th scope="row">KABUPATEN:</th><td>' +
      [nama] +
      '</td></tr><tr><th scope="row">Detail:</th><td><button  class="btnclick" data_wil="' +
      [nama] +
      '">Detail</button></td></tr></tbody></table>';
    layer.bindPopup(popupContent, { maxHeight: 400 });
  }

  var baseMaps = {};
  L.control.layers(baseMaps, { " DesaIndonesia": des }).addTo(map);
});

как получить функцию данных desa для данных l.geojson вне этой функции?

...