Analizando un archivo GeoJSON con jQuery

9

Estoy tratando de iterar a través de un archivo GeoJSON (abajo) y eventualmente llenar una matriz con algunos atributos dentro de "propiedades". Me quedo corto trabajando en varios ejemplos que puedo encontrar. ¿Debo incrustar otro $ .each () para llegar a las propiedades. Si no es obvio, soy nuevo en esto y me he topado con la pared.

Lo que tengo hasta ahora:

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

Y mi json es el siguiente:

{
    "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
fuente

Respuestas:

7

Ya casi has llegado. Otro .each para val.properties debería funcionar:

$.each(data.features, function (key, val) {
    $.each(val.properties, function(i,j){
        items.push('<li id="' + i + '">' + j + '</li>');
    })              
});
Ciro
fuente
2
Gracias Cyrus, eso hizo el truco. Intenté cada combo menos eso. Soy un principiante y las iteraciones pueden llegar a ser abrumadoras rápidamente
geomajor56
5

Lo que está escrito arriba recorrerá cada elemento en cada objeto JSON. Esos son objetos JSON, por lo que desea tratarlos como la geometría y las propiedades de los objetos y luego simplemente hacer referencia a ellos mediante la notación de puntos.

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