Analyser un fichier GeoJSON avec jQuery

9

J'essaie d'itérer à travers un fichier GeoJSON (ci-dessous) et éventuellement remplir un tableau avec quelques attributs dans "propriétés". Je continue à travailler court à travers divers exemples que je peux trouver. Dois-je intégrer un autre $ .each () pour accéder aux propriétés. Si ce n'est pas évident, je suis nouveau et j'ai frappé le mur.

Ce que j'ai jusqu'à présent:

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

Et mon json est le suivant:

{
    "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
la source

Réponses:

7

Tu es presque là. Un autre .each pour val.properties devrait fonctionner:

$.each(data.features, function (key, val) {
    $.each(val.properties, function(i,j){
        items.push('<li id="' + i + '">' + j + '</li>');
    })              
});
Cyrus
la source
2
Merci Cyrus, ça a fait l'affaire. J'ai essayé tous les combos sauf ça. Je suis un débutant et les itérations peuvent devenir écrasantes rapidement
geomajor56
5

Ce qui est écrit ci-dessus parcourra chaque élément de chaque objet JSON. Ce sont des objets JSON, vous devez donc les traiter comme la géométrie et les propriétés des objets, puis les référencer simplement en utilisant la notation par points.

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