2

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

函数 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();
        });
    }

    });
});

});

4

1 回答 1

2

创建 GeoJSON 特征集合:

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

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

featurecollection.features.push({
  type: 'Feature',
  properties: {}, // any properties you want in the feature
  geometry: [long, lat]
});
于 2013-12-04T00:59:52.910 回答