使用jQuery从GeoRSS中循环GeoJSON项

时间:2013-10-07 02:45:18

标签: jquery json leaflet mapbox georss

我有一个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();
        });
    }

    });
});

});

1 个答案:

答案 0 :(得分:2)

创建GeoJSON要素集:

var featurecollection = { type: 'FeatureCollection', features: [] };

在每次循环迭代中,将特征推到它上面。

featurecollection.features.push({
  type: 'Feature',
  properties: {}, // any properties you want in the feature
  geometry: [long, lat]
});