繁体   English   中英

OpenLayers 4变量图标旋转

[英]OpenLayers 4 variable icon rotation

我从API读取各种数据源。 此数据相对于API端点具有许多属性,但是都共享一些共同的属性,即:

  • 东距
  • 北距
  • 回转
  • 名称

由此,我生成GeoJSON对象(它们都是Point特征,并将Easting / Northing转换为lat / Long),并通过一些通用代码在地图上呈现每个数据源:

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

this.map.addLayer(vectorLayer);

这会在我的地图上获得这些点,我是否可以通过创建自定义样式来设置它们的样式,我使用图像(.png)作为点标记。

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

API中的每个数据点都会有自己的旋转角度-它们的旋转角度并不相同。

该系统最初使用this.map.addOverlay(overlay)来添加每个点,这在测试中是可以的,但实际上并不能很好地进行缩放,因为渲染它们的时间太长了。 目前,我最大的数据集只有7000个数据点。

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

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

因此,您可以为每个要素设置样式,以根据其属性计算旋转。

对于缺乏响应的情况,并且在文档中没有明显内容的结论,我得出的结论是您无法执行此操作……这真是可惜。

因此,我改变了方向,并基于OpenLayers 3中的 SO QA 旋转多边形,编写了一个包装程序,将我的点要素转换为以实际位置为中心的多边形。 然后,我可以旋转多边形。

这并不理想,结果证明我的旋转数据完全无法穿透-定义为“角度”,但不是角度或弧度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM