我正在尝试在 OpenLayers 3 中绘制矢量图块,并且我想测试图像矢量的性能,因为我拥有的体积太大,浏览器无法处理。
这是 ImageVector 类的文档
ol.source.ImageVector
一个图像源,其图像是画布元素,从矢量源 (ol.source.Vector) 读取的矢量特征被绘制到其中。ol.source.ImageVector 对象将用作图像层 (ol.layer.Image) 的源。
据此,ol.source.Vector 类型的所有源都应该工作。该类的三个如下:
ol.source.Vector
|_ ol.source.Cluster
|_ ol.source.FormatVector
|__ ol.source.ServerVector
|__ ol.source.StaticVector
| |__ ol.source.GeoJSON
| |__ ol.source.GPX
| |__ ol.source.IGC
| |__ ol.source.KML
| |__ ol.source.OSMXML
| |__ ol.source.TopoJSON
|__ ol.source.TileVector
因此,据我了解,我应该能够将任何这些源用于 ImageVector 源。所以,我正在尝试以下类似的方法,但没有成功。
var waterVectorSource = new ol.source.TileVector({
format: new ol.format.TopoJSON(),
projection: 'EPSG:3857',
tileGrid: new ol.tilegrid.XYZ({
maxZoom: 19
}),
url: 'http://{a-c}.tile.openstreetmap.us/' +
'vectiles-water-areas/{z}/{x}/{y}.topojson'
})
var imageVectorSource = new ol.source.ImageVector({
source:waterVectorSource
});
var imageLayer = new ol.layer.Image({
source:imageVectorSource
});
var map = new ol.Map({
target: 'map',
layers: [
/*new ol.layer.Tile({source: new ol.source.MapQuest({layer: 'sat'})}),*/
imageLayer
],
view: new ol.View({
zoom: 13
})
});
用 ServerVector 而不是 TileVector 尝试了同样的事情,但它们不起作用。没有函数执行(前者)或网络调用(后者)。我见过的 ImageVector 类的唯一示例(像这个)使用 StaticVector 类的子级。
有谁知道您可以将哪种数据源用于 ImageVector 类?
谢谢