问题标签 [openlayers-3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
524 浏览

openlayers-3 - Openlayers 3 - Control zoom level for ol.interaction.DragZoom

I am drawing a polygon at boxend that clones the box but when the event is over I can't see the polygon because of the zoom level.

Is there a way to control the zoom level when dealing with DragZoom interaction?

0 投票
1 回答
1177 浏览

javascript - 在 OL3 中创建自己的动态图层类型

我目前正在将我为 OpenLayers 创建的特殊动态图层类型从 OL2 迁移到 OL3。该图层显示在预定义轨迹上移动的标记(其中很多,通常大约 1000 个)。轨迹以特殊的 JSON 格式从服务器加载。

我当前的 OL2 方法非常高效,经过大量优化并使用 Raphael 库 ( http://raphaeljs.com/ )。一般应用程序布局如下所示:

  • OpenLayers2 已加载,地图已创建
  • 创建了一个特殊的层“DynLayer”,它模仿 OL2 自己的 VectorLayer。该层处理与 OL2 的通信(缩放、平移、拖动等),并提供非常复杂的异步机制来根据当前交互(例如,如果用户刷新率下降)重绘到地图(即移动标记)当前正在平移到地图以防止出现口吃效果)。在构建过程中,DynLayer 创建一个 Raphael SVG 层并将其附加到 DOM 中。如果地图被平移或缩放,则 Raphael 图层由 DynLayer 同步。
  • 然后在 SVG 层上创建标记,并定期更新它们的位置

这种方法非常有效,并且因为 Raphael 支持较旧的 IE 版本,它也可以在 IE8 和 IE7 中运行。它还使我能够提供基于 Raphaels 内置动画方法的动画。

我现在正在尝试将此应用程序迁移到 OL3,但我不能 100% 确定最好的方法是什么。OL3 加载后是否可以在 OL3 中添加自定义层?如果是这样,是否有任何文件?我尝试实现自己的 VectorLayer 版本,但 OL3 引发了大量与 Closure API 提供的 goog 对象相关的错误。

更一般地说:重新创建我的旧方法并在 OL3 之上绘制一个 Raphael 层会更好吗?这种方法可以让我重用我以前的大部分代码。还是应该使用 OL3 提供的方法直接在 HTML5 画布上绘制?如果是这样,我怎样才能控制画布的刷新率?

我让我看了一下http://ol3js.org/en/vector-api/examples/dynamic-data.html?q=dynamic上的示例,但它并没有真正满足我的需求。标记在无限循环中进行动画处理,我需要对刷新率进行特定控制。更一般地说,如何防止我的标记在 OL3 自己的画布刷新之一中被删除(例如,如果加载了新的图块)。

我对 OL3 的总体印象是,添加自己的扩展比使用 OL2 更难,对我来说,它似乎比 OL3 更“开放”。

谢谢你的帮助!

0 投票
1 回答
1343 浏览

polygon - 如何在绘制结束时在 OpenLayers3 中获取多边形的坐标

我试图向地图添加点击处理程序,但不确定如何判断多边形何时完成绘制。是否有一个简单的函数来获取绘制结束时的多边形坐标?

0 投票
4 回答
97867 浏览

javascript - 如何使用 OpenLayers 3 添加标记

我正在尝试在OpenLayers 3地图上添加制造商。

我发现的唯一示例是示例列表中的这个示例OpenLayers

但是该示例使用ol.Style.Icon而不是OpenLayers.Marker in之类的东西OpenLayers 2

第一个问题

唯一的区别是您必须设置图像网址,但这是添加标记的唯一方法吗?

似乎也OpenLayers 3没有附带标记图像,所以如果没有其他方法,那就有意义了ol.Style.Icon

第二个问题

如果有人能给我一个在地图加载后添加标记或图标的函数示例,那就太好了。

根据我在示例中的理解,他们为图标创建了一个图层

然后他们在初始化地图时设置图标层

如果我想添加许多标记,是否必须为每个标记创建 1 层?

我怎样才能在一个图层上添加许多标记?我不知道这部分会是什么样子

谢谢

0 投票
1 回答
1764 浏览

internet-explorer - 在 IE 8 中使用矢量图层初始化地图时出现异常

我正在尝试在 OpenLayers 3 地图上添加一个图标,但我注意到我的代码在 IE 8 中不起作用。

这是我的代码:

当我在地图初始化过程中不使用时也不例外,vectorlayer但是地图在它应该在的位置旁边大约 30 公里处居中并且缩放效果效果不佳。

未压缩的 ol.js 的第 2421 行是个例外。goog.asserts.ENABLE_ASSERTS等于true

问题 1

OpenLayers 3 是否支持 IE 8?

网站上,他们提到他们支持功能较弱的浏览器

承诺为最新的浏览器带来 3D 功能和更高的性能,以满足所有映射需求。OpenLayers 3.0 将提供 WebGL,同时在功能较弱的浏览器中很好地降级。

问题2

是否有一个简单的解决方法来避免该异常。只要图标出现在合适的位置,我并不介意缩放效果。

我在 IE 中使用 F12 工具进行测试,并将文档模式和用户代理字符串设置为 IE 8

谢谢

0 投票
1 回答
666 浏览

javascript - 开放层边界框大小限制

我想将用户在绘制边界框时限制为特定大小,例如 1024 x 1024。如何在 Open Layers 3 (OL3) 中执行此操作?谢谢!

0 投票
1 回答
5317 浏览

openlayers-3 - 如何在开放的第 3 层中获得粗体标签?

我在矢量图层中标记标记。

ol.style.Text 对象的 TextOptions 包括对文档(http://ol3js.org/en/v3.0.0-beta.1/apidoc/ol.style.html#TextOptions)没有更改字体粗细的选项.

在 ol2 我用过:

这似乎在 ol3 中不起作用。

如何才能做到这一点?

0 投票
1 回答
1410 浏览

image - 如何使用 Open Layers 3 在地图上添加可缩放图形?

我正在使用 OpenLayers (OL3) 在地图上显示形状和对象。

这些形状代表建筑物,并将具有 SVG 或 PNG 格式的图像资源。我需要将这些图像以适当的比例和旋转放置在地图上,并且仍然能够缩放/平移。

我在这里找到了一个使用 OpenLayers 2 的非常好的示例:http: //gis.ibbeck.de/ginfo/apps/OLExamples/OL27/examples/ExternalGraphicOverlay/ExternalGraphicOverlay.asp

我在将其转换为 OL3(地图旋转需要它)时遇到问题。我被卡住的是这个(OL2中的示例代码):

我没有找到如何将其转换为 ol.style.Style 以在缩放时缩放的图层上设置图像。

如何使用 OL3 实现这一点?

0 投票
1 回答
258 浏览

qooxdoo - Qooxdoo 移动应用中的 OpenLayers 3

为了准备即将发布的 OpenLayers 3,我尝试让基本地图示例在 Qooxdoo 移动应用程序中工作。

我使用 Qooxdoo mobileshowcase 演示地图作为起点,但经过数小时的尝试后,我无法显示地图。

为简洁起见,我包括了 ol3 css

除了将 mapUri 替换为 OL3 类之外,我让整个 Maps.js 类保持不变:

然后将 _loadMapLibrary 替换为:

似乎它应该工作......

0 投票
3 回答
7024 浏览

drag-and-drop - 如何在 Open Layers 3 中拖动要素?

在 OL3 示例中,我可以将对象拖放到地图上,但我想移动/调整大小/旋转地图上已经存在的东西,例如 ol.geom.Point 和其他 ol.geom 对象。这样做的OL3方式是什么?

OL2 中的示例: