javascript - OpenLayers 4 可变图标旋转

标签 javascript openlayers geojson

我正在从 API 读取各种数据源。 该数据具有许多与 API 端点相关的属性,但都有一些共同的属性,即:

  • 东移
  • 北移
  • 轮换
  • 姓名

据此,我生成 GeoJSON 对象(它们都是点要素,并且我将东向/北向转换为纬度/经度),并通过一些通用代码在 map 上呈现每个数据源:

let vectorLayer = new ol.layer.Vector({
    source: new ol.source.Vector({
        features: (new ol.format.GeoJSON()).readFeatures(featureCollection)
    }),
    style: style
});

this.map.addLayer(vectorLayer);

这会获取 map 上的点,我可以通过创建自定义样式来设置它们的样式吗?我使用图像 (.png) 作为点标记。

但是我需要做的是根据数据的 Rotation 属性旋转标记,但我不知道该怎么做。

来自 API 的每个数据点都有自己的旋转 - 它们并非全部旋转相同的 Angular 。

该系统最初使用 this.map.addOverlay(overlay) 来添加每个点,这在测试中很好,但实际上扩展得不太好,因为渲染时间太长他们。目前我最大的数据集接近 7000 个数据点。

实现这一目标的最佳方法是什么?

最佳答案

您可以使用样式函数代替静态样式:https://openlayers.org/en/latest/apidoc/ol.html#.StyleFunction

因此,您可以根据每个特征的属性计算旋转,设置每个特征的样式。

关于javascript - OpenLayers 4 可变图标旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50016276/

相关文章:

javascript - 是否可以在 dblclick 事件中检测到 ctrl 键状态

javascript - 为什么这个结果为空

javascript - 调试 Java Stream() NullPointerException 原因的最佳方法

javascript - 将 Javascript 数组传递给 UILabel - iOS

javascript - openlayers - 我如何旋转图像层

javascript - 是否可以使用不同投影的另一个 WMS 图层显示 OSM 数据?

javascript - 如何从 OpenLayers.Control.DrawFeature 获取积分返回

javascript - 从 geoJson 获取参数

java - 将大型 GeoJson 添加到 Android 上的 GoogleMap 的有效方法

node.js - 存储 GeoJson 点并在给定距离/半径内查找点 | NODEJS、Postgres、NestJs、TypeOrm