Analysieren einer GeoJSON-Datei mit jQuery

9

Ich versuche, eine GeoJSON-Datei (unten) zu durchlaufen und schließlich ein Array mit einigen Attributen in "Eigenschaften" zu füllen. Ich arbeite immer wieder kurz an verschiedenen Beispielen, die ich finden kann. Muss ich ein weiteres $ .each () einbetten, um zu den Eigenschaften zu gelangen? Wenn es nicht offensichtlich ist, bin ich neu in diesem Bereich und habe die Wand getroffen.

Was ich bisher habe:

$(document).ready(function () {    
            $.getJSON('testpoint.geojson', function (data) {
                var items = [];
                $.each(data.features, function (key, val) {
                    items.push('<li id="' + key + '">' + val + '</li>');
                });
                $('<ul/>', {
                    'class':'my-new-list',
                    html:items.join('')
                }).appendTo('body');
            });
        });

Und mein json ist wie folgt:

{
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "properties": {
                "gid": 1,
                "PID": "9-18-3",
                "BCT": "BCT126",
                "OWNER_TYPE": "A",
                "LOCNO": 0,
                "LOCEXT": "",
                "STREET": "CROSBY LANE",
                "ACQUIRED": "5/7/2010",
                "GRANTOR": "John A. SPARGO",
                "UPLAND": 0,
                "WETLAND": 3.96,
                "TOTAL": 3.96,
                "HABITAT": "salt marsh"
            },
            "geometry": {
                "type": "Point",
                "coordinates": [
                    -70.03209,
                    41.78278
                ]
            }
        }
    ]
}
geomajor56
quelle

Antworten:

7

Du bist fast am Ziel. Eine andere .each für val.properties sollte funktionieren:

$.each(data.features, function (key, val) {
    $.each(val.properties, function(i,j){
        items.push('<li id="' + i + '">' + j + '</li>');
    })              
});
Cyrus
quelle
2
Danke Cyrus, das hat den Trick gemacht. Ich habe jede Combo ausprobiert, aber das. Ich bin ein Anfänger und Iterationen können schnell überwältigend werden
geomajor56
5

Was oben geschrieben wurde, durchläuft jedes Element in jedem JSON-Objekt. Da es sich um JSON-Objekte handelt, möchten Sie sie als Objektgeometrie und -eigenschaften behandeln und sie dann einfach mit der Punktnotation referenzieren.

$.each(data.features, function (key, val) {
  geometry = val.geometry;
  properties = val.properties;
  alert (properties.place);  
});
Walker Rowe
quelle