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

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

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);  
});
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.