GeoJSON Parsing – How to Read Through GeoJSON Using Turf.js

javascriptjqueryturf

I have a simple app that takes a coordinate and determines what GeoJSON polygons it falls inside, then I take the polygon data and put it into a table. I have working code that uses turfjs and Leafletjs. however my task is to do this without a map.

I'm tripping over the part of the code that reads the GeoJSOn and "foreach" poly

var cluster = [];
var point1 = turf.point([-73.79896352764388,42.81585623837577], { });//x,y

$.getJSON(url, function(data){
     ////  replace from here
    geojsonLayer = new L.GeoJSON(data,{style: style, onEachFeature: onEachFeature});    
    map.addLayer(geojsonLayer);         
    map.fitBounds(geojsonLayer.getBounds(), {padding: [50, 50]});

    geojsonLayer.eachLayer(function (layer) {
    ///// replace to to here....

    //$.each(data, function(layer){  // thought I was on the right track but...

    var isInside = turf.inside(point1,layer.feature);

        if(isInside){
            cluster.push(layer.feature);    
        }           

    });

    createTable(cluster);

});

Any ideas?

Best Answer

Got it, create a JS object and load it with features from the GeoJSON file. Next loop through the object passing it through the turf function inside.

var cluster = [];
var features=[];
var point1 = turf.point([-73.798963,42.815856], { });//x,y

$.getJSON(url, function(data){

    features = data.features;

    for (var i = 0, len = features.length; i < len; i++) {

    var isInside = turf.inside(point1,features[i]);

        if(isInside){

            cluster.push(features[i]);

        }           
    }

    createTable(cluster);  //Create table of attributes

});