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
                ]
            }
        }
    ]
}

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>');
    })              
});

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);  
});
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.