Openlayers 4矢量地图

时间:2018-06-01 15:29:55

标签: vector openlayers

我正在创建一个仪表板网站,并且我使用矢量图层来选择一个病房(在这个原型中,我使用ESSEX UK,里面有所有病房,见图片)

enter image description here

这是我正在使用的代码。

http://openlayers.org/en/latest/examples/select-features.html?q=selec

问题在于,当我从地图文件创建geojson文件时(地图文件中唯一的字段是病房名称和代码,而不是太多信息),这个大小开始有点大地图和加载地图非常慢,一旦我试图加载一个更大的文件(差不多6mb)和Openlayers无法加载它,现在我需要创建另一个原型,但对于整个英国(只是地区,没有病房)。

从OL4到矢量支持哪种格式?我可以用另一种不是GeoJson的格式来实现这样的东西吗?

我需要能够点击并至少返回我点击的位置,并使用它来启动我需要该名称的其他功能。

1 个答案:

答案 0 :(得分:2)

有很多方法可以解决矢量数据客户端渲染的性能问题。

首先,你不能用openlayers渲染6mb的矢量数据有点奇怪。根据我的经验(主要是使用OpenLayers 2),6mb并不是那么多。但是,它严重依赖于客户端功能。 加载有什么问题?超时?冻结?没有响应的平移/缩放?

您可以使用WMS或磁贴渲染数据服务器端。例如,您可以使用mapserver或geoserver。然后,要选择对象,可以使用GetFeatureInfo请求。

否则,正如pavankguduru所建议的那样,您可以尝试使用矢量切片格式。

可能您的矢量数据太“细致”,无法满足您的需求。您可以简化它们以减少每个几何体的点数。请参阅GRASS的v.generalize工具。

您还可以使用数据的聚合版本(区域),直到用户放大。

恕我直言,如果你的应用程序需要在旧的浏览器/ PC上运行,那么你需要渲染服务器端。