Vector Openlayers 4矢量地图

Vector Openlayers 4矢量地图,vector,openlayers,Vector,Openlayers,我正在创建一个仪表板站点,并使用矢量层来选择病房(在这个原型中,我使用ESSEX UK,所有病房都在里面,请参见图) 这就是我正在使用的代码 问题是,当我从地图文件(地图文件中唯一的字段是病房名称和代码,没有太多信息)创建geojson文件时,这张地图的大小开始有点大,加载地图非常慢,一旦我尝试加载更大的文件(几乎6mb),Openlayers就无法加载它,现在我需要为整个英国创建另一个原型(只有地区,没有病房) 从OL4到vector支持哪种格式?我可以用另一种非GeoJson的格式实现类

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

这就是我正在使用的代码

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

从OL4到vector支持哪种格式?我可以用另一种非GeoJson的格式实现类似的功能吗


我需要能够单击并至少返回我正在单击的位置的名称,并使用它启动需要该名称才能工作的其他功能。

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

首先,有点奇怪,你不能用openlayers渲染6mb的矢量数据。根据我的经验(主要是OpenLayers 2),6mb并没有那么多。然而,这在很大程度上取决于客户端功能。 装载有什么问题?暂停?冻结无响应的平移/缩放

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

否则,正如pavankguduru所建议的,您可以尝试使用矢量平铺格式

可能,矢量数据对于您的目的来说太“详细”。可以简化它们以减少每个几何体的点数。参见GRASS的v.generalize工具

在用户放大之前,您还可以使用数据(区域)的聚合版本


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

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

首先,有点奇怪,你不能用openlayers渲染6mb的矢量数据。根据我的经验(主要是OpenLayers 2),6mb并没有那么多。然而,这在很大程度上取决于客户端功能。 装载有什么问题?暂停?冻结无响应的平移/缩放

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

否则,正如pavankguduru所建议的,您可以尝试使用矢量平铺格式

可能,矢量数据对于您的目的来说太“详细”。可以简化它们以减少每个几何体的点数。参见GRASS的v.generalize工具

在用户放大之前,您还可以使用数据(区域)的聚合版本


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

你可以尝试使用矢量分幅。我不能使用外部服务,我们有自己的专用服务器和MapServer。如果您可以生成自己的矢量分幅,则不必使用外部服务。我不熟悉mapserver,但您可以查看这些链接。您可以尝试使用矢量平铺。我不能使用外部服务,我们有自己的专用服务器和MapServer。如果您可以生成自己的矢量分幅,则不必使用外部服务。我不熟悉mapserver,但您可以查看这些链接。可能是太详细了,我删除了地图上的所有信息,只留下了病房名称和区号,从12MB减少到6 Mb,但绘制地图仍然需要大约5秒钟。我不能使用外部服务,因为我们有带mapserver的专用服务器。我会看看我是否可以简化几何:)可能太详细了,我从地图上删除了所有信息,只留下了沃德_名称和区号,从12MB减少到6 Mb,但绘制地图仍然需要大约5秒钟。我不能使用外部服务,因为我们有带mapserver的专用服务器。我将看看是否可以简化几何体:)