以编程方式旋转要素 Open Layers

Posted

技术标签:

【中文标题】以编程方式旋转要素 Open Layers【英文标题】:Rotate a feature programmatically Open Layers 【发布时间】:2011-02-16 05:27:19 【问题描述】:

TLDR 我想在打开的图层中旋转一个要素。 我希望它面对我从服务器接收到的某个标题。


我知道你可以让一个特征在一个点上旋转:

window.setInterval(function() rotateFeature(
       pointFeature, 360 / 20, origin), 100);

来自open layers example.

但我希望能够面对给我的标题,所以。

    我可以将特征朝向航向吗? 我可以以同样的方式面对特征(图像)吗? 如果不是,是否可以自动计算所需的旋转并以这种方式定位? 或者对如何使用图像执行此操作有任何想法? (希望没有 360 度图像)

一个例子或类似的将不胜感激。


到目前为止没有运气使用:

      window.setInterval(function() rotateFeature(
        imagefeature, 150 / 360, origin), 1000);
        function rotateFeature(feature, angle, origin) 
            feature.geometry.rotate(angle, origin);
            

其中原点是图像对象的中心点。

代码方面有什么想法吗?

【问题讨论】:

我想通过给定的“标题”旋转图像。 【参考方案1】:

您可以使用图像/图标来表示矢量点,例如

http://openlayers.org/dev/examples/vector-features.html

使用此 png 文件 alt text http://openlayers.org/dev/img/marker.png 然后,您应该能够像在另一个示例中一样旋转该点。可以任意旋转:

http://dev.openlayers.org/releases/OpenLayers-2.8/doc/apidocs/files/OpenLayers/Geometry/Point-js.html#OpenLayers.Geometry.Point.rotate

rotate: function(angle,origin)

围绕另一个点旋转一个点。 参数

angle Float 以度为单位的旋转角度(从正 x 轴逆时针测量)

origin OpenLayers.Geometry.Point 旋转的中心点

【讨论】:

感谢您的信息。但是,如果我要旋转一个点(图像),我是否必须基于另一个点来旋转它,或者我可以基于它自身并以这种方式旋转它? origin参数可以是任意点。要使用矢量特征的质心(如果它是一个点,则质心就是该点)使用:dev.openlayers.org/releases/OpenLayers-2.8/doc/apidocs/files/…

以上是关于以编程方式旋转要素 Open Layers的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中以编程方式旋转一组按钮?

如何在显示旋转时以编程方式更改布局约束

如何检测以编程方式生成的 UIView 的旋转

在 UITableView 重新加载时以编程方式打开/关闭 UITextField 的 inputView

暂时,以编程方式禁用 Qt 中的屏幕旋转

如何以编程方式自动旋转UIScrollView和UIImageView?