我想从服务下载geoJson格式的功能,然后将其中的功能添加到地图上的新图层。我可以下载功能好了,我在下载后如何将它们添加到地图中。 我不想让OL直接从url读取文件,如我可以找到的每个示例所示,因为我想要更好地控制何时下载功能或者如果由于某种原因下载失败该怎么办。 我正在尝试这个(数据包含我的geoJson featurecollection):
library(dplyr)
df %>%
group_by(terminal, gr= 1+2*(price==0)+4*(price==49)) %>%
summarise(n=n(),
Avg = mean(price[!(price %in% c(0,49))], na.rm=TRUE))
这会导致ol库中某处出现错误,显然ol要素类型与geoJson功能不同,它需要getId()函数。 我还尝试将数据添加为一个整体:
var nwLayer = new ol.layer.Vector({
title: 'My Title',
source: new ol.source.Vector({
features: data.features,
format: new ol.format.GeoJSON()
}),
style: new ol.style.Style({
image: new ol.style.Circle({
radius: 7,
fill: new ol.style.Fill( { color: "yellow" } )
})
})
} );
map.addLayer(nwLayer);
这根本没有视觉效果。 我怎么能这样做?
答案 0 :(得分:2)
您是对的,OpenLayer功能不是GeoJSON功能对象。要将GeoJSON转换为OpenLayers功能,请使用readFeatures
的{{1}}方法。
使用示例代码的其余部分:
ol.format.GeoJSON