Openlayers 3 下载后将geoJson文件的内容添加到矢量层
我想从服务下载geoJson格式的功能,然后将其中的功能添加到地图上的新图层。我可以下载这些功能。好吧,我一直在想下载后如何将它们添加到地图中。 我不想让OL直接从url读取文件,正如我能找到的每个示例中所示,因为我想更多地控制何时下载功能,或者如果由于某种原因下载失败,该怎么办。 我正在尝试(数据包含我的geoJson特性集合): 这会导致ol库中的某个地方出错,显然ol功能类型与geoJson功能不同,它需要一个getId()函数。 我还尝试将数据作为一个整体添加:Openlayers 3 下载后将geoJson文件的内容添加到矢量层,openlayers-3,geojson,Openlayers 3,Geojson,我想从服务下载geoJson格式的功能,然后将其中的功能添加到地图上的新图层。我可以下载这些功能。好吧,我一直在想下载后如何将它们添加到地图中。 我不想让OL直接从url读取文件,正如我能找到的每个示例中所示,因为我想更多地控制何时下载功能,或者如果由于某种原因下载失败,该怎么办。 我正在尝试(数据包含我的geoJson特性集合): 这会导致ol库中的某个地方出错,显然ol功能类型与geoJson功能不同,它需要一个getId()函数。 我还尝试将数据作为一个整体添加: features: da
features: data,
这根本没有视觉效果。
我该怎么做呢?你说得对,OpenLayer功能不是GeoJSON功能对象。要将GeoJSON转换为OpenLayers功能,请使用
ol.format.GeoJSON
的readFeatures
方法
使用示例代码的其余部分:
var nwLayer = new ol.layer.Vector({
title: 'My Title',
source: new ol.source.Vector({
features: (new ol.format.GeoJSON()).readFeatures(data)
}),
style: new ol.style.Style({
image: new ol.style.Circle({
radius: 7,
fill: new ol.style.Fill( { color: "yellow" } )
})
})
});
map.addLayer(nwLayer);
没错,OpenLayer功能不是GeoJSON功能对象。要将GeoJSON转换为OpenLayers功能,请使用
ol.format.GeoJSON
的readFeatures
方法
使用示例代码的其余部分:
var nwLayer = new ol.layer.Vector({
title: 'My Title',
source: new ol.source.Vector({
features: (new ol.format.GeoJSON()).readFeatures(data)
}),
style: new ol.style.Style({
image: new ol.style.Circle({
radius: 7,
fill: new ol.style.Fill( { color: "yellow" } )
})
})
});
map.addLayer(nwLayer);
太好了,谢谢。我在Vector层名称空间中寻找这样的函数,但我没有想到它可以在GeoJson格式名称空间中找到。作为一名新手,我对图书馆和文档的广度有点不知所措。我花了更多的时间,因为数据本身还有其他问题。太好了,谢谢。我在Vector层名称空间中寻找这样的函数,但我没有想到它可以在GeoJson格式名称空间中找到。作为一名新手,我对图书馆和文档的广度有点不知所措。我花了更多的时间,因为数据本身还有其他问题。