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

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


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

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

来自open layers example.

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

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

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


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

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

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

代码方面有什么想法吗?

【问题讨论】:

  • 我想通过给定的“标题”旋转图像。

标签: javascript rotation openlayers heading


【解决方案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/…
猜你喜欢
  • 1970-01-01
  • 2012-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-09
  • 2015-06-21
  • 2013-03-24
  • 1970-01-01
相关资源
最近更新 更多