问题标签 [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 回答
3454 浏览

openlayers - OpenLayers 5 和 OpenLayers 6 之间的区别

关于即将发布的 OpenLayers 6 的快速问题。有谁知道 OpenLayers 5 和 OpenLayers 6 之间的主要区别是什么。我在这里阅读了一些内容,但出现了其他问题:

  1. OpenLayers 6 是否会完全重写库或某些现有功能,例如图层渲染和 WebGL?

  2. 是否可以轻松地从 5.xx 过渡到 6.xx ?

  3. 也有人可以解释即将到来的 Vector Tiles 实现这对最终用户意味着什么(如果可能的话,简而言之)

  4. Openlayers 6 计划何时发布。首先根据在线资源,最初计划于 2019 年 2 月下旬发布。有人有关于新日期的信息吗?

现在就是这样:)感谢您的时间和耐心:)

0 投票
1 回答
327 浏览

bootstrap-4 - 在 openlayers 中添加 bootstrap 4 后显示视图问题

我正在使用 Openlayers 6 开发 webGIS 地图。它包含我自己编写的许多小部件和模块。一切都很好,直到我将 Bootstrap 4 添加到我的项目中。

添加 Bootstrap 4 后(Bootstrap 3 很好!)视图不再显示(只是一个空白 div)。首先,我认为可能有一些错误,但我检查了浏览器的控制台,没有错误!
这些是我添加的包:

在添加以下行之一之前,一切都很好:

我一直在尝试不同的东西,但一无所获。最后,我添加了一个事件侦听器来查看更改。我在 map-div 中滚动鼠标。我在浏览器的控制台中看到了日志!!所以不显示核心代码是个问题。

这是我的与地图相关的 div 的 CSS:

I tried to change/removing these css but nothing happens. I also tried changing z-indexes but nothing. The project isn't online yet so I can't give any link.

I really get into trouble with this and I will appreciate any idea or solution except switching to bootstrap 3 :))

Regards, M. Mahmoodian

0 投票
1 回答
687 浏览

openlayers - OpenLayers 6 - 添加第二个矢量切片图层会导致基础图层标签消失

我正在使用 OpenLayers 6 将两个 MVT 平铺源显示为两层。基础图层具有来自本地服务的 MVT 源,为 OpenMapTilesmbtile文件提供服务,使用文件osm-bright提供的样式。第二个来源是来自 Tegola 服务的 MVT 层。

仅显示基础图层时,会正确渲染基础地图标签。添加第二个图层后,基本地图标签将不再显示。

这是一个错误,还是需要应用其他一些设置?

0 投票
2 回答
249 浏览

javascript - 从 WFS 加载时不保留 OpenLayers 几何名称

我正在使用 OpenLayers 6 和 GeoServer 2.16(加上 PostGIS);当我从 GeoServer 加载图层时,会加载特征,但会覆盖它们的几何名称。在 GeoServer 中,几何名称(和 PostGIS 中的列)是geom. 返回的 XML 反映了这一点。但是 OpenLayers 对象的几何名称为geometry,忽略 GeoServer 返回的几何名称。

这似乎微不足道,但会导致问题,例如当我去编辑功能时出现错误org.geoserver.wfs.WFSException: No such property: geometry;所以虽然我可以在我的代码中编辑几何名称和相应的值,但这似乎是一个糟糕的 hack。

这是我在文档中找不到的错误还是某些设置?

任何帮助将不胜感激!(我没有看到任何反映此错误的问题(获取 WFS 是我的情况,所有问题似乎都是关于 POSTing back)。如果我重复,请告诉我。)

0 投票
1 回答
544 浏览

openlayers - OPENLAYERS 6 如何获取几个kml文件的边界

我怎样才能得到几个kml文件的界限?我可以轻松获得一个 kml 文件,但我有点迷失了......要获得地图中所有 kml 文件的边界......

这是代码(写在php文件上下文中)

首先,我定义了所需的 kml 文件以及用于源和层的 js var(即:src_expe_pro0 expe_pro0 ...)

后来我把它放在地图上(所以 $layers_pro_kml 可以是一层或多层)

雾来了……现在我只是用这个谁在第一个 kml 层的边界上工作

所以实际上问题是如何使用数组(扩展)来减少一个数组,我们会给我所有 kml 层的边界?api中有函数还是我必须使用数组?或者也许是一个简单的方法?

任何建议

谢谢

在迈克(谢谢)的建议下,我完美地使用了这个和它的工作..

0 投票
1 回答
264 浏览

gis - WFS 图层未显示在地图上

我使用 openlayers 6。我在地图上显示图层时遇到问题。我将图层加载为 GML 格式的 XML 并尝试显示,但图层未显示在地图上。

这是向量定义:

这是向量源定义:

这是地图定义:

这是视图定义:

更新:

这是我从服务器获得的 GML 中单个功能的示例:

这里是解析后的样子:

我在矢量图层中使用的投影与我在视图中使用的投影相同。这里是投影的定义:

知道为什么地图不显示吗​​?

0 投票
1 回答
247 浏览

rollupjs - OpenLayers 6 和 RollupJS 配方

我正在尝试使用 RollupJS 创建 OpenLayers 6 的生产版本。我想生成一个最小化的 ES6 模块,我可以从中导入我的代码中的类...我不想将我的代码与核心 OL 类混合。根据我所见,默认的 OpenLayers 捆绑器、Parcel 和其他选项无法管理此问题。

所有使用 ol-rollup ( https://github.com/openlayers/ol-rollup ) 的 OpenLayers-5 都可以正常工作。但是,如果我更新到 OpenLayers-6 & RollupJS <= 1.26.0 ( https://github.com/flavour/ol-rollup ),则会收到以下错误:

RollupJS 网站对此有以下看法: https ://rollupjs.org/guide/en/#error-this-is-undefined https://rollupjs.org/guide/en/#danger-zone

我不知道如何使用 options.context 或 options.moduleContext 来解决这个问题。

0 投票
1 回答
722 浏览

openlayers - OpenLayers 5 到 6:未渲染的图层

我们正在尝试将我们的 OL5 地图迁移为 OL6 地图。当我们使用 OL6 时,地图根本不渲染,并且在 DevTools 中,如果我们为地图 div 设置高度,缩放工具和徽标显示正常,但没有图层。我们用快速启动地图替换了地图,它在 6 中不起作用,5 完全没问题。检查我们的地图对象没有显示任何问题,并且符合预期。

其他人有任何问题或解决了这个问题,或者可以提供帮助吗?谢谢!

HTML 声明:

控制器.js:

地图工厂:

0 投票
0 回答
128 浏览

ionic3 - Openlayers-6 .fit(extent, {options}) 不适用于选项

我已将 IONIC V3 应用程序中的 openlayers 从 4.6.5 升级到 6.1.0。现在 map.getView().fit(extent, {duration:1000}) 停止工作,当我删除选项对象时它工作正常。我做错了什么还是需要其他任何东西。?

0 投票
0 回答
84 浏览

openlayers - OpenLayers - 使用 ol/control/Control 比定义定制控件有什么好处?

在 OpenLayers 中创建“控件”时 - 即覆盖地图并在单击时执行操作的按钮,我可以想到至少两种实现方法:

提供您自己的 DOM 元素,并直接与 Map 对象交互

这是我目前的做法。在我目前正在开发的网站上:https ://seacrifog.saeon.ac.za/atlas ,右上角有 2 个小按钮。这些按钮打开包含 DOM 组件树和逻辑的侧面菜单,用于通过对 OpenLayers 地图对象的引用与地图进行交互。

map通过 render-props 模式包装 OpenLayers 库的组件的所有子组件都可以使用此引用:

Control然后我发现在不使用 OpenLayers类的情况下构建“控件”非常容易:

使用 OpenLayers ol/control/Control 类

我从示例中看到,也可以通过定义附加Controls 将按钮添加到地图中。据我所知,这个例子展示了如何定义将添加到地图中的 DOM 元素,以及如何编写事件处理程序(在本例中为单击)以允许您以您想要的方式与地图交互. 这与我使用初始方法的方式基本相同。

问题

ol/control/Control使用与不使用此 API定义地图控件有什么好处?我想不出不临时使用Control类的任何缺点(实际上......使用 React 我可以想到不直接与 DOM 交互的原因,除非我真的需要,以及可能与来自的地图对象交互父组件)。虽然我使用的是 OpenLayers 6,但我认为在这种情况下版本并不重要。