JQuery के साथ GeoJSON फ़ाइल पार्स करना


9

मैं एक GeoJSON फ़ाइल (नीचे) के माध्यम से पुनरावृति करने की कोशिश कर रहा हूं और अंततः "गुणों" के भीतर कुछ विशेषताओं के साथ एक सरणी को पॉप्युलेट करता हूं। मैं विभिन्न उदाहरणों के माध्यम से काम करना जारी रख सकता हूं जो मुझे मिल सकते हैं। क्या मुझे संपत्तियों को प्राप्त करने के लिए एक और $ .each () एम्बेड करना होगा। अगर यह स्पष्ट नहीं है कि मैं इसके लिए नया हूँ और मैंने दीवार पर प्रहार किया है।

मेरे पास अब तक क्या है:

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

और मेरा जसन इस प्रकार है:

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

जवाबों:


7

आप लगभग वहाँ हैं। Val.properties के लिए एक और .each काम करना चाहिए:

$.each(data.features, function (key, val) {
    $.each(val.properties, function(i,j){
        items.push('<li id="' + i + '">' + j + '</li>');
    })              
});

2
धन्यवाद साइरस, कि चाल है। मैंने हर कॉम्बो की कोशिश की लेकिन वह। मैं एक शुरुआत कर रहा हूँ और पुनरावृत्तियों जल्दी से भारी हो सकता है
geomajor56

5

ऊपर जो लिखा गया है वह प्रत्येक JSON ऑब्जेक्ट में प्रत्येक तत्व के माध्यम से लूप करेगा। वे JSON ऑब्जेक्ट्स हैं इसलिए आप उन्हें ऑब्जेक्ट्स ज्यामिति और गुणों के रूप में व्यवहार करना चाहते हैं, तो बस डॉट नोटेशन का उपयोग करके उन्हें संदर्भ दें।

$.each(data.features, function (key, val) {
  geometry = val.geometry;
  properties = val.properties;
  alert (properties.place);  
});
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.