我有一个GeoRSS提要,我试图用jQuery解析以创建一个geoJSON数组,然后我可以使用Leaflet将其添加到MapBox地图。
我想我已经设法将GeoRSS变成GeoJSON了,但是我就可以了;似乎找不到如何遍历每个项目以便我可以将它添加到我的地图中。如果我取出循环部分,我会在地图上绘制一个单点 - 来自RSS提要的最新条目。
任何指针都非常感谢!
这是我正在运行的代码:
$(document).ready(function(){
$.get('http://shifting-sands.com/feed/', function(rssdata) {
var $xml = $(rssdata);
$xml.find("title").each(function() {
var $this = $(this),
item = {
title: $this.find("title").text(),
link: $this.find("link").text(),
description: $this.find("description").text(),
pubDate: $this.find("pubDate").text(),
latitude: $this.find("lat").text(),
longitude: $this.find("long").text()
}
function displayPosts(rssdata){ $ .each(rssdata.rss.channel.item,function(i,item){
//Read in the lat and long of each photo and stores it in a variable.
lat = item.latitude;
long = item.longitude;
title = item.title;
clickurl = item.link;
//Get the url for the image.
var htmlString = '<a href="' + clickurl + '">' + title + '</a>';
var contentString = '<div id="content">' + htmlString + '</div>';
//Create a new marker position using the Leaflet API.
var rssmarker = L.marker([lat, long]).addTo(map);
//Create a new info window using the Google Maps API
rssmarker.bindPopup(contentString).openPopup();
});
}
});
});
});
答案 0 :(得分:2)
创建GeoJSON要素集:
var featurecollection = { type: 'FeatureCollection', features: [] };
在每次循环迭代中,将特征推到它上面。
featurecollection.features.push({
type: 'Feature',
properties: {}, // any properties you want in the feature
geometry: [long, lat]
});