问题标签 [openlayers-5]

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

vector - 在openlayers 5中获得点击功能时出现arr.indexOf错误

在 openlayers 5 中,我有一个矢量图层,我尝试创建代码以在单击要素后获取要素的属性。

到目前为止,这是我的代码

然后我试过了

selectClick.on('select', ()=>{console.log(selectedFeatures);});

我得到

错误类型错误:arr.indexOf 不是函数

在这两种情况下。

我究竟做错了什么?我的最终目标是做类似 的事情selectClick.getFeatures().feature.properties.id,因为我正在加载的 geoJSON 也有一些元数据属性。

那么,如何获得所选功能?

谢谢

0 投票
1 回答
790 浏览

vector - openlayers 5矢量源不清除,调用清除函数后

在我的 openlayers 5(基于 angular 6 应用程序)中,我正在实现一个功能,您可以在其中搜索某些内容,查询数据库,数据库会带回一些 geoJSON,然后我将这个 geoJSON 数据呈现在一个 ol 矢量图层中。

有两种不同的搜索方式,所以有两种不同的形式将geoJSOn带回同一个ol向量。

当然,在渲染数据之前,我必须清除图层。

这是我的代码

ngOnInit初始化之后,有两个不同的函数将geoJSON带到同一个ol向量层。他们基本上做同样的事情。

问题是在添加新特征之前并不总是清除 ol 矢量源。我搜索一些东西,呈现特征。我再次搜索,有时,旧功能与新功能一起保留在地图上。

我做了一个愚蠢的举动来添加refreshclean没有任何东西是固定的。这不是标准的,例如每隔一个搜索。这是随机发生的,我不知道如何调试它。请指教

谢谢

0 投票
2 回答
3290 浏览

openlayers-5 - OpenLayers 5:平滑移动标记

我使用 https://openlayers.org/en/latest/examples/feature-move-animation.html

代码片段:

但我需要在两点(或多点)之间平滑移动标记

0 投票
1 回答
559 浏览

angular - 无法在openlayers 5中立即获取地理位置坐标

我正在使用 openlayers5 和 angular 6 实现地理定位/位置跟踪功能。即使我没有收到任何错误并且这似乎工作正常,我也没有立即得到坐标。这是我的地理位置相关代码。

这是HTML部分

该复选框会自动检查较小的屏幕。

无论如何,即使我没有收到任何错误,我也必须自己手动检查复选框几次,以便查看地理位置坐标并使整个代码正常工作。我第一次打开它时它不起作用,它没有坐标,所以我将它关闭并再次打开。之后它工作正常,因为它应该。

这里有什么问题?我该如何解决?请指教。

谢谢

0 投票
1 回答
707 浏览

asynchronous - 等到 openlayers 5 geolocation 返回一个值

我正在使用 openlayers 5 来实现一个简单的地理定位功能:

当检查地理位置复选框时,地理位置启动,通过动画过渡将放大到位置,并自动跟踪位置。它在矢量图层中添加了一个特征。

当取消选中地理定位复选框时,地理定位以及跟踪将被关闭,并且该矢量图层被清除。

我的问题是我不知道如何等到 geolocation 具有 value,所以我可以正确地继续放大该位置。我认为地理定位需要一点时间才能产生价值是正常的,但我不知道如何等到那时。我的代码只是放大了它的当前位置,过了一会儿,地理位置点就呈现在了正确的位置。

我的代码(openlayers 5 + angular 6)

ngOnInit

和html部分

我也尝试过使用承诺

ngOnInit,改变toggleGeolocation

getpos调用(我可以in在控制台上看到),但它从来没有值,所以它返回undefined.

0 投票
1 回答
336 浏览

javascript - 如何在 OpenLayers5 中最大限度地适应地图?

我在地图上添加了一些标记:

添加功能后,我希望地图尽可能缩放,以便所有标记一次可见。怎么做?显然,以前的版本有一个zoomToExtent现在缺少的方法。

我试过了,但它什么也没做:

编辑:

map.getView().calculateExtent()最初和添加特征后返回相同的范围。所以我想我的问题是如何正确计算范围。

0 投票
1 回答
292 浏览

reactjs - React componentDidMount() 影响渲染

我从 App 组件状态设置面板组件的属性。当我单击按钮时,我想增加(示例)地图坐标。没关系,但我必须在 Panel 的 componentDidMount() 中声明 openlayers 变量,但 componentDidMount 一旦运行,坐标不会改变地图我该怎么办?请帮忙 ... 。

面板组件

0 投票
1 回答
363 浏览

openlayers - 检查坐标是否有效 EPSG 3857 ,使用 Openlayers 5

我正在使用 openlayers 5 和 angular6。

我创建了一个简单的表单,用户可以给出 EPSG3857 坐标的 X 和 Y,提交,一个点将在那里渲染,地图将在那里缩放。我为此使用了矢量图层。

我想以某种方式检查 XY 是否是有效的 EPSG3857 坐标。

我尝试使用try/catch块,但这在我第二次提交表单时有效。

我放了一些疯狂的 XY 6.34 2401111118651.91,我提交了,创建了点,地图在白色背景中无处放大。我必须第二次提交相同的表格,try/catch才能真正捕捉到错误。

我怎样才能解决这个问题并立即检查坐标?这是我写的代码

谢谢

0 投票
1 回答
2412 浏览

javascript - 如何使用 OSM 在 openstreetmap 中获取标记或任何图标

我正在使用 Ol V5.3.1 并使用 asp mvc,这是我的代码,用于获取特定位置的地图和标记或任何图标以显示我的位置

一切都很好,并显示了我的位置的图块和地图,我的浏览器控制台中没有任何错误,但只是不显示图标和标记,因为这是在Example_Marker使用矢量图层的 openlayer 示例

我还找到了另一种在此示例中放置带有覆盖的标记的方法,因为我在下面对此进行了编码

但也没有显示这个

有什么建议吗?

0 投票
2 回答
2052 浏览

javascript - 如何从 JSON 文件在 OpenLayers 中绘制点类型几何图形

我有一个网页,其中包含一个使用OpenLayers创建的 MAP 实例。它应该以Point类型的几何图形显示世界上所有的海峡。数据(纬度、经度)以 JSON 格式提供。我能够在地图上绘制一个点并给它一个像红点这样的样式,但是由于我在 openlayers 中很天真,所以我安静地想不出一种方法来对 JSON 文件中的所有点做同样的事情。所以我的问题是如何从地图上的 JSON 文件中绘制所有点,并为它们提供一些样式,例如着色并在 JSON 数据的点旁边显示名称。我正在使用 OpenLayers 5.1.3 和 jQuery 2.3,我的代码

和json数据

如何沿标记显示preferredGazetteerName