Листовка с газонным буфером Geojson Ajax - PullRequest
0 голосов
/ 03 октября 2018

Я загрузил данные точек из API Geojson, используя

    var incidences = new L.GeoJSON.AJAX("http://127.0.0.1:8000/incidence_data/",{

         onEachFeature: function(feature,layer){
            //console.log(feature.properties);
            layer.bindPopup(feature.properties.name.toString())
        }
    });
    incidences.addTo(map);

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

html

<div id="map2" class="col-md-4 well">
    <p>GeoDjango is da bomb</p>
    <button id="buffer" class="form-control btn-warning">Buffer</button>
</div>

JS

    var bufferLayer;
    var incidences2 = incidences.toGeoJSON();

    $("#buffer").click(function(){
        if ($("#buffer").html()=='Buffer'){
            var buff=turf.buffer(incidences2,1,'miles');
            bufferLayer=L.geoJSON(buff).addTo(map);
            $("#buffer").html("Remove Buffer");
      } else{
            map.removeLayer(bufferLayer);
            $("#buffer").html("Buffer");
        }
    });

, тогда я получаю эту ошибку, когда нажимаю на кнопку

turf.min.js:1 Uncaught Error: options must be an object
    at Object.t.buffer (turf.min.js:1)
    at HTMLButtonElement.<anonymous> (js.js:112)
    at HTMLButtonElement.dispatch (jquery-3.3.1.slim.min.js:2)
    at HTMLButtonElement.v.handle (jquery-3.3.1.slim.min.js:2)

1 Ответ

0 голосов
/ 03 октября 2018

Как показывает ошибка, вы не передаете действительный параметр "options" (в этом случае вы отправляете строку "miles" вместо объекта options).В соответствии с документацией (http://turfjs.org/docs#buffer), вы должны вместо этого позвонить

var buff =turf.buffer(incidences2, 1, {units: 'miles'});

...