我能找到的与我的问题最接近的帖子是OpenLayers 中的 Compound complex feature。唉,没有人回答。我非常精通 JavaScript,但对 OpenLayers 及其复杂的 API 相对较新。在此之前我已经创建了复杂的控件。但是,这一次我希望创建一个复杂的特征/向量。它的总体思路是该功能具有一个显示图标(例如,一个图钉)作为主要组件。该组件是交互式的并响应用户操作(选择、拖动等)。选择后,我希望渲染与该组件逻辑相关的其他向量(圆形、矩形等)。这些 Vectors 也会监听用户交互。
以前,在 Controller 的情况下,我能够使用其他控制器的源来了解开发方向并成功进行。恕我直言,使用特征/向量有点困难。
我首先使用OpenLayers.Feature.Vector.CustomClass = OpenLayers.Class( OpenLayers.Feature.Vector, {...});
代码扩展 OpenLayers.Feature.Vector。构造函数将特定参数用于我的特征,创建几个几何对象(点、多边形、线),将它们添加到 OpenLayers.Geometry.Collection,并调用 OpenLayers.Feature.Vector 构造函数并将集合传递给它。
不幸的是,我意识到为了显示一个图标,我不能只使用 Geometry.Point 而是需要为它创建一个 Vector。那种让我失望的原因是我将在我的自定义 Vector 对象中创建 Vectors。一般来说,这并没有什么不寻常的,但我想知道这是否是 OpenLayers 中的工作方式。就像我提到的那样,我发现 API 文档不是很有用,因为它只是说明了一般函数头/简要说明。
如果有人能指出我正确的方向,我将不胜感激(除了基本的“使用自定义图像创建标记”类型之外,还没有在网上找到很多教程)。如果描述不清楚,请告诉我,我会尽力提供更多信息。