问题标签 [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 投票
1 回答
1934 浏览

openlayers-3 - OpenLayers3 - 是否可以结合修改/绘制/选择操作?

我已经开始在我的应用程序中使用 OpenLayers3,到目前为止,我已经成功地创建了以下工作版本:

  1. 组合的绘制/修改页面(基于相关示例,draw-and-modify-features.js
  2. 组合的选择/修改页面(基于相关示例,modify-features.js

在 (1) 的情况下,ol.interaction.Modify实例指定它将作用于ol.FeatureOverlay实例内部的特征:

...并且它ol.FeatureOverlay包含了用户绘制的所有新功能。

在 (2) 的情况下,ol.interaction.Modify实例指定它将作用于ol.interaction.Select实例内部的功能:

...除非我弄错了,否则这会创建一个ol.FeatureOverlay包含当前选定功能的隐藏项 - 然后对其进行编辑。

但是,我看不到一种结合所有 3 的方法 - 即一种允许用户绘制、选择和修改多边形的用户友好方式。

我(理想情况下)想要的是绘制/修改的功能,但是当我按下并按住 Ctrl 时,光标不再在“绘制”模式下工作,而是在“选择”模式下,允许我选择一个现有的多边形,然后点击键盘上的 Delete 将其删除,或者只用鼠标编辑其顶点。一旦我在所有多边形之外单击,我就会返回到绘制/修改模式。

我做了天真的测试——添加一个ol.interaction.Select到绘制/修改地图实例的交互中——这会导致有趣的结果:-) 例如,在完成多边形的绘制时(即当我双击关闭它时)它也被选中...并单击任何位置(多边形内部或外部)只会启动另一个新的多边形边缘,它永远不会选择预先存在的边缘 - 等等。

到目前为止,我唯一想到的解决方案是......对我来说实现“VI 仿真”:-) 即“命令”模式(即选择/修改状态)和“插入”模式(即绘图/modify state) - 您从地图内的“状态切换”按钮(自定义 OL3 控件)或地图外(普通的 HTML 按钮)中选择了您所处的模式。

但是,我正在寻找一种更好的方法,例如我建议的按住 Ctrl 的方法...

欢迎任何想法/建议。

0 投票
1 回答
9666 浏览

javascript - 解构 Open Layers 3 地图

所以,我正在使用带有 Ember.js 的 Open Layers 3 来制作仪表板,并且我已经动态加载了地图,但我希望它在我离开路线时被销毁,我发现的唯一东西是 map.destroy()但它适用于旧版本的 API,新版本中似乎没有。

几次转到地图页面后,我使用了 chrome 调试器,发现我有 29 个 ol.Map 对象。

这是我到目前为止所拥有的

我在文档中找不到有关删除地图的任何内容。

提前致谢。

0 投票
12 回答
30195 浏览

javascript - 如何在openlayers 3中更改悬停光标?

我设法向从远程 GeoJSON 资源添加的要素图层添加交互性。当我点击一个功能时,我会得到它的 ID,触发一个 AJAX 请求并在地图区域之外的页面上显示一些有关该功能的相关信息。

我使用了Select交互。

我想让用户更清楚地知道他可以点击地图上的功能。当鼠标悬停在 a 中包含的功能时,有什么方法可以将鼠标光标更改为“手”的“光标” ol.layer.Vector

我在文档、本网站或谷歌搜索中找不到任何内容。

0 投票
1 回答
3253 浏览

javascript - 在开放层 3 中设置矢量样式

我正在使用 ol3 中的向量层,并且对 API Docs 确实缺乏进行了罚款。

唯一可用的参考是ol.style中显示的默认样式

这是我到目前为止所拥有的,取自示例和跟踪和错误

为什么会有数组?

如何更改字体大小?“字体大小”:和大小:没用

我应该查看其他一些文档吗?

我迷路了。

0 投票
2 回答
5197 浏览

javascript - 在隐藏元素中绘制 OpenLayers 3 地图

我正在写一个页面,您可以在其中查看有关区域和地图的详细信息。详细信息在一个选项卡上,地图在另一个选项卡上。HTML 的相关部分如下,类来自Bootstrap

切片图层来自 OSM,矢量图层通过提供 KML 文件的 URL 加载。它使用OpenLayers 3.0.0执行此操作,如下所示:

这会在单击地图选项卡时呈现地图,从而导致小的延迟。即使未选择选项卡,有没有办法加载它?如果我尝试这样做并且在选择地图选项卡时不重绘,那么当我切换到地图选项卡时画布是空白的,并且只显示放大和缩小按钮。

有没有办法在不可见的元素中渲染地图?

0 投票
0 回答
1948 浏览

javascript - OpenLayers 3:如何使用.png上可见的地图ScaleLine导出地图

这一切都在标题中,我想导出一张地图,地图的比例在导出的 png 图像上可见。

这是我在屏幕上看到的:http: //image.noelshack.com/fichiers/2014/39/1411732313-default.jpg

这是我导出的 png:http: //image.noelshack.com/fichiers/2014/39/1411731619-img12180dxn777.png

我想要 png 图像,地图的比例是可见的,就像我在 OpenLayer 屏幕上的图片一样。

任何人都知道该怎么做,或者OpenLayer还不可能吗?

这是我用来在地图上添加比例的基本代码:openlayers.org/ol3-workshop/controls/scaleline.html

这是我用来导出地图的代码:openlayers.org/en/v3.0.0/examples/export-map.js

预先感谢您的回复

0 投票
5 回答
18591 浏览

javascript - OpenLayers 3:如何计算两点之间的距离?

使用 OpenLayers 3,如何确定 Spherical Mercator (SRID: 3857) 投影中两点之间的距离?

我知道distanceTo在 OpenLayers 2 中使用过

我浏览了OpenLayers 3 文档,但没有找到类似的东西......

0 投票
1 回答
1094 浏览

javascript - 将悬停 SelectInteraction 与 ol.events.condition.mouseMove 一起使用时,拖动地图在 OpenLayers 3 中丢失

我已经调整了OpenLayers 3 选择功能示例,以在用户指向某个功能(取自 GeoJSON FeatureList)时获得悬停效果,但我失去了拖动地图交互。

有没有办法在不牺牲拖动/平移交互的情况下在悬停时产生特征样式更改?

当您将操作类型设置 为 Hover 时,您可以在链接的示例中看到相同的问题。

openlayers 3 邮件列表中有一个未回答的问题

0 投票
1 回答
1925 浏览

openlayers-3 - “一组ol.style.Style”有什么用?

ol.layer.Vector的样式可以设置为ol.style.Style,样式函数或数组ol.style.Styleol.style.Style与仅传递对象相比,数组的用途和作用是什么?

我在官方API 文档教程中都找不到这方面的任何信息。

0 投票
1 回答
1934 浏览

mapserver - 如何从 MapServer Source 在 Openlayers 3 中创建 WFS 层

我还没有找到如何在 OpenLayers 3 中通过 WFS 处理 MapServer、特定向量的示例。如果有人可以提供示例,将不胜感激。

例如:这就是我在 Openlayers 2 中通过 WFS 请求从 MapServer 创建矢量图层的方式:

OpenLayers 3 中的等价物是什么?