Итак, у меня есть GeoJSON поток, который выглядит, как этотКак перебрать GeoJSON Лента новостей для Google Map
{
"type" : "FeatureCollection",
"features" : [
{
"type" : "Feature",
"geometry" : {
"type" : "Point",
"coordinates" : [
-84.50926612,
39.1423275
]
},
"properties" : {
"name" : "<a href=\"/Things-To-Do/Attractions/cincinnati-zoo-botanical-garden\">Cincinnati Zoo & Botanical Garden</a>",
"description" : ""
}
},
{
"type" : "Feature",
"geometry" : {
"type" : "Point",
"coordinates" : [
-84.495935481675,
39.095853705988
]
},
"properties" : {
"name" : "<a href=\"/Things-To-Do/Attractions/bb-riverboats-thanksgiving-day-cruise\">BB Riverboats Thanksgiving Day Cruise</a>",
"description" : ""
}
}
]
}
Я загружая его с помощью этой функции
var attbut = document.getElementById('loadatt');
attbut.addEventListener('click', function() {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'path-to-GeoJson', true);
xhr.onload = function() {
loadAttractions(this.responseText);
};
xhr.send();
});
И загружается нормально. Однако я не могу заставить свойство length использовать итерацию.
function loadAttractions(results) {
log(results.FeatureCollection.length);
for (var i = 0; i < results.FeatureCollection.length; i++) {
var coords = results.features[i].geometry.coordinates;
var latLng = new google.maps.LatLng(coords[1],coords[0]);
var marker = new google.maps.Marker({
position: latLng,
map: map
});
}
}
Я попытался results.features.length
и results.FeatureCollection.features.length
, единственное, что «работает» является results.length
, что дает весь массив. Все остальное дает неопределенную ошибку.
Спасибо за любые предложения или помощь.
Асумпинг вашего объекта json проверяется на переменные вызываемые результаты. Это не массив, это объект. results.features.length должен отлично работать – Dalorzo
Спасибо за ответ. Я называю это «результатами» в функции loadattractions. Т.е., функция 1, загружает данные и передает их на loadAtrractions (результаты). Затем попытаемся получить длину результатов. results.feaures.length НЕ работает. –