问题标签 [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.
openlayers - 如何在OL6中获得一个圆的距离
如何获得与画圈特征的距离,?
可以得到半径。(这是像素吗?)
想要一米。
谢谢。
openlayers - Openlayers 6 - 在线显示 Geojson 标签
我对如何在 GeoJSON 文件中添加标签以显示在地图上感到困惑。我已经尝试了许多来自 openlayers.org 的示例,但它们不起作用。
我想在地图顶部和沿线的 GeoJSON 文件中显示属性“名称”中的文本,例如街道名称。现在只显示该行。
这是我的脚本。
这是我的 GeoJSON 文件的示例,我已转换为 .js 并将其包含在 HTML 头中。
openlayers - Openlayers 6 - 如何从下拉菜单中选择矢量图层
在我的地图上,背景中有一个 OpenStreetMap 瓷砖,顶部有一个 VectorLayer。现在我希望用户通过下拉菜单更改 VectorLayer。我怎样才能做到这一点?
这是我的 HTML 下拉菜单代码:
这是我的地图脚本:
这是我的 VectorLayer 1a 脚本:
的代码var linelayergroup
应该如何?,是可以value
在 HTML 下拉菜单中更改的 VectorLayerGroup。例如,如果用户Line 1A
在下拉菜单中选择,则 VectorLayer 将从默认更改为 layer layer1a
,如果用户选择另一个选项,则 VectorLayer 将从layer1a
该选项更改。
谢谢您的帮助。
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/
javascript - 无法使用 openlayer 6 显示矢量图层
我正在开发一个 openlayers 地图,以在 Vuejs 项目中添加带有本地 geojson 和 gpx 文件源的矢量图层,但矢量图层无法显示。我在 Vue.js 之外进行了测试,我遇到了同样的问题。
语音代码:
对于 geojson 文件收到此错误:
对于 gpx 文件,没有错误,但没有显示任何内容。
我尝试添加样式,但结果保持不变。
我创建了一个简单的例子,parcel + openlayers 重现了问题ici
我查看了 doc + openlayers 示例,但看不到是什么导致了我的代码中的问题?
是的,我已经尝试指定完整路径。我也重命名了.json
,它不起作用。该代码似乎正确,因为我尝试使用以下代码并且它有效。我不明白为什么它不适用于本地文件。也许您需要在 parcel 甚至 webpack 或 vuejs 中添加配置?
这有效:
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。
非常感谢所有可以提供帮助的人。
问候马可
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)。
我已经突出显示了相关标签的宽度属性:
如您所见,屏幕为 375,但由于某种原因,画布宽度已设置为 274。
我应该补充一点,我也在使用flex-layout,我之前为了清楚问题而省略了它,但我觉得我现在应该以防它可能是 flexbox 的副作用。
有谁知道为什么画布设置为 274,或者我如何将宽度设置为 100%?
任何帮助或建议将不胜感激。
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
javascript - OpenLayers6检测光标何时离开地图
当光标离开地图时,我想隐藏一个附加到光标的圆圈。当光标进入 时,这个圆圈也必须ol.control
隐藏。在较旧的 OL 版本中,我只是mouseleave
为对象添加了一个侦听器canvas
,但在 OL6 中,不能保证存在画布,并且对于下面的所有元素,这些基本事件的传播似乎都停止了ol-viewport
。
如何在 OL6 中实现这种行为?