问题标签 [openlayers-6]

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 回答
92 浏览

openlayers - 如何在OL6中获得一个圆的距离

如何获得与画圈特征的距离,?

可以得到半径。(这是像素​​吗?)

想要一米。

谢谢。

0 投票
1 回答
1029 浏览

openlayers - Openlayers 6 - 在线显示 Geojson 标签

我对如何在 GeoJSON 文件中添加标签以显示在地图上感到困惑。我已经尝试了许多来自 openlayers.org 的示例,但它们不起作用。

我想在地图顶部和沿线的 GeoJSON 文件中显示属性“名称”中的文本,例如街道名称。现在只显示该行。

这是我的脚本。

这是我的 GeoJSON 文件的示例,我已转换为 .js 并将其包含在 HTML 头中。

0 投票
1 回答
881 浏览

openlayers - Openlayers 6 - 如何从下拉菜单中选择矢量图层

在我的地图上,背景中有一个 OpenStreetMap 瓷砖,顶部有一个 VectorLayer。现在我希望用户通过下拉菜单更改 VectorLayer。我怎样才能做到这一点?

这是我的 HTML 下拉菜单代码:

这是我的地图脚本:

这是我的 VectorLayer 1a 脚本:

的代码var linelayergroup应该如何?,是可以value在 HTML 下拉菜单中更改的 VectorLayerGroup。例如,如果用户Line 1A在下拉菜单中选择,则 VectorLayer 将从默认更改为 layer layer1a,如果用户选择另一个选项,则 VectorLayer 将从layer1a该选项更改。

谢谢您的帮助。

0 投票
1 回答
593 浏览

javascript - 如何在 OpenLayers 中的两个遥远多边形之间创建飞行动画

使用 Openlayers (v6.1.1.) 我正在尝试在几个多边形之间创建简单的FlyTo动画。当它们之间的距离有点小时,FlyTo 动画效果很好,但随着距离的增加,用户体验会下降。

在较大的距离上,我只是看到在低变焦下快速平移地图。我尝试使用此链接中的ahocevar答案,但没有达到预期的效果。

按照说明,我将一个中心动画与两个缩放动画组合在一起并同时启动它们。例子:

当多边形在附近时,此 FlyTo 动画效果很好,但随着距离的增加,FlyTo 动画正在转变为跨地图的快速平移。

我创建了用于测试目的的小应用程序。当我们单击列表项时,地图将动画并缩放到单击的字段。例如,当真棒时,另一个和超级场在附近,并且 FlyTo 动画按预期工作,但是当我们从超级场点击到史诗场(位于最南端。然后地图只是快速平移到位置)。

所以,我的问题是这个。是否可以独立于多边形位置为多边形实现相同的 FlyTo 效果(传单有这个很好的设置https://regionbound.com/leaflet-fly-demo

这是 jsfiddle 示例: https ://jsfiddle.net/Svinjica/1kjfp4ds/

0 投票
2 回答
960 浏览

javascript - 无法使用 openlayer 6 显示矢量图层

我正在开发一个 openlayers 地图,以在 Vuejs 项目中添加带有本地 geojson 和 gpx 文件源的矢量图层,但矢量图层无法显示。我在 Vue.js 之外进行了测试,我遇到了同样的问题。

语音代码:

对于 geojson 文件收到此错误:

对于 gpx 文件,没有错误,但没有显示任何内容。

我尝试添加样式,但结果保持不变。

我创建了一个简单的例子,parcel + openlayers 重现了问题ici

我查看了 doc + openlayers 示例,但看不到是什么导致了我的代码中的问题?

是的,我已经尝试指定完整路径。我也重命名了.json,它不起作用。该代码似乎正确,因为我尝试使用以下代码并且它有效。我不明白为什么它不适用于本地文件。也许您需要在 parcel 甚至 webpack 或 vuejs 中添加配置?

这有效:

0 投票
2 回答
893 浏览

ruby-on-rails - OpenLayers 6 on Rails target.addEventListener 不是函数

我从头开始使用 Openlayers 6.1.1 构建 Rails 6 应用程序。使用 Webpacker 和 Turbolinks。许多事情都很好,涡轮链接也是如此。但有一件事不能正常工作:Openlayers。我用纱线添加了开放层,它基本上可以工作。所以我可以按预期创建地图,但我无法添加 VectorLayer。如果我这样做,我将收到一条控制台消息:

我的意思是我正在导入所有必需的库。在我的 application.js

在我的 map.js

还有我的地图对象:

  • 我试过没有turbolinks
  • 我添加了 pepjs
  • 我手动添加了 jquery
  • 我试过传单。结果 VectorLayers 一个实时插件工作正常。

暗示。我必须使用 Openlayers 而不是 Leaflet。

非常感谢所有可以提供帮助的人。

堆栈跟踪

问候马可

0 投票
4 回答
2736 浏览

angular - Openlayers 地图不使用全宽

我在Angular上使用openlayers来显示带有here-api作为地图图块提供者的地图。开放层 6.1.1角 8.0.0

但是,加载页面时,地图不会填满整个宽度。
这发生在适用于 Windows (PC) 的 Edge 和 Chrome 以及适用于 Android 的 Chrome 上。

在 Windows 中,只有在调整浏览器窗口大小时,地图才会使用整个宽度。
在 Android 中,当地图滚动出视图并返回再次查看时,宽度会被填充。

下面的截图展示了地图在调整浏览器大小之前和之后的样子。

初始显示上的部分宽度地图 调整窗口大小后地图使用全宽度

在此处输入图像描述



在此处输入图像描述

我的 Angular 组件映射配置如下所示:

html 模板如下所示:

为了消除地图图块提供程序here-api作为问题的原因,我还尝试将 Angular 组件地图配置中的XYZ.url替换为openstreetmap

https://{ac}.tile.openstreetmap.org/{z}/{x}/{y}.png


但这导致了与上述相同的问题,所以我怀疑这可能是 openlayers 的问题。

任何帮助或建议将不胜感激。
谢谢!

问题更新:2020 年 2 月 20 日

@sep7696 的建议让我更深入地研究浏览器元素。在检查“ol-layer” div 时,我看到了一个宽度设置为“274”的标签,这不是屏幕的全宽(屏幕宽度 375)。

我已经突出显示了相关标签的宽度属性:

地图画布设置为宽度 275

如您所见,屏幕为 375,但由于某种原因,画布宽度已设置为 274。

我应该补充一点,我也在使用flex-layout,我之前为了清楚问题而省略了它,但我觉得我现在应该以防它可能是 flexbox 的副作用。

有谁知道为什么画布设置为 274,或者我如何将宽度设置为 100%?

任何帮助或建议将不胜感激。

0 投票
1 回答
788 浏览

openlayers - 从 OpenLayers 中的 WMS 图层获取多边形内的要素

我目前实现了这个例子。所以我可以通过单击或框选择来选择图层的功能。

但我想知道是否可以在 wms 层上通过框选择获得功能?

(我尝试了矢量图层,它目前正在工作)。

谢谢。

0 投票
1 回答
163 浏览

geoserver - ol 6中新的内部瓦片坐标和自定义瓦片网格的WMS层

我的默认地图在 EPSG: 5179 坐标系中,并且我正在使用 tileurlfunction 重新定义。

视图投影也设置为 5179。

将 Geoserver WMS 图层投影到 EPSG:4326 或 EPSG:3857 根据要求,它将覆盖在我的底图上。

但是如果我将投影修改为 EPSG: 5179 并覆盖 tilegrid 值 tileurlfunction,它不会正常覆盖。

如果您查看 ol v6.0.0.md,

新的内部瓷砖坐标,

好像是部分修改了tileUrlFunction导致的问题。

如果 tilegrid 不使用左上角并应用左下角,如果您能告诉我如何进行 WMS 图层服务,将不胜感激。

  • 我的baselayer&tileurlfunction
  • 地理服务器 wmslayer
0 投票
1 回答
160 浏览

javascript - OpenLayers6检测光标何时离开地图

当光标离开地图时,我想隐藏一个附加到光标的圆圈。当光标进入 时,这个圆圈也必须ol.control隐藏。在较旧的 OL 版本中,我只是mouseleave为对象添加了一个侦听器canvas,但在 OL6 中,不能保证存在画布,并且对于下面的所有元素,这些基本事件的传播似乎都停止了ol-viewport

如何在 OL6 中实现这种行为?