我正在努力根据另一个JSON的值过滤一个geojson。具体地说,我正在尝试根据另一个json中的id过滤geojson。每次,我过滤后的geojson都会返回null。
我已经创建了一个JSfiddle here来显示我想要做的事情。
代码是
mygeojson={crs: {properties: {name: "EPSG:4326"}, type: "name"},
features: [
{geometry: {coordinates: [25, 37], type: "Point"},properties: {"wineryid":3},type:"Feature"},
{geometry: {coordinates: [26, 37], type: "Point"},properties: {"wineryid":45},type:"Feature"},
{geometry: {coordinates: [25, 38], type: "Point"},properties: {"wineryid":34},type:"Feature"},
{geometry: {coordinates: [28, 37], type: "Point"},properties: {"wineryid":42},type:"Feature"},
{geometry: {coordinates: [25, 342], type: "Point"},properties: {"wineryid":80},type:"Feature"},
{geometry: {coordinates: [25.24, 37.12], type: "Point"},properties: {"wineryid":120},type:"Feature"}], type:"FeatureCollection"};
mylist=[{id:1, name:"test1"},{id:34,name:"test2"}];
tempgeojson = mygeojson.features.filter(function (item) {
return (mylist.every(f => item.properties.id === f.id) )
});
filteredgeojson={};
filteredgeojson.features=tempgeojson;
filteredgeojson.crs=mygeojson.crs;
filteredgeojson.type="FeatureCollection";我怎样才能得到我需要的过滤过的geojson?(在本例中,预期的geojson大约是id的1和34。)
发布于 2019-06-02 21:48:38
尝试使用以下代码进行要素过滤
filteredgeojson.features = mygeojson.features.filter(item => {
if(mylist.filter(myitem => myitem.id === item.properties.wineryid).length > 0) {
return item;
}
});https://stackoverflow.com/questions/56415323
复制相似问题