问题标签 [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.
vector - 在openlayers 5中获得点击功能时出现arr.indexOf错误
在 openlayers 5 中,我有一个矢量图层,我尝试创建代码以在单击要素后获取要素的属性。
到目前为止,这是我的代码
然后我试过了
selectClick.on('select', ()=>{console.log(selectedFeatures);});
和
我得到
错误类型错误:arr.indexOf 不是函数
在这两种情况下。
我究竟做错了什么?我的最终目标是做类似
的事情selectClick.getFeatures().feature.properties.id
,因为我正在加载的 geoJSON 也有一些元数据属性。
那么,如何获得所选功能?
谢谢
vector - openlayers 5矢量源不清除,调用清除函数后
在我的 openlayers 5(基于 angular 6 应用程序)中,我正在实现一个功能,您可以在其中搜索某些内容,查询数据库,数据库会带回一些 geoJSON,然后我将这个 geoJSON 数据呈现在一个 ol 矢量图层中。
有两种不同的搜索方式,所以有两种不同的形式将geoJSOn带回同一个ol向量。
当然,在渲染数据之前,我必须清除图层。
这是我的代码
在ngOnInit
初始化之后,有两个不同的函数将geoJSON带到同一个ol向量层。他们基本上做同样的事情。
和
问题是在添加新特征之前并不总是清除 ol 矢量源。我搜索一些东西,呈现特征。我再次搜索,有时,旧功能与新功能一起保留在地图上。
我做了一个愚蠢的举动来添加refresh
,clean
没有任何东西是固定的。这不是标准的,例如每隔一个搜索。这是随机发生的,我不知道如何调试它。请指教
谢谢
openlayers-5 - OpenLayers 5:平滑移动标记
我使用 https://openlayers.org/en/latest/examples/feature-move-animation.html
代码片段:
但我需要在两点(或多点)之间平滑移动标记
angular - 无法在openlayers 5中立即获取地理位置坐标
我正在使用 openlayers5 和 angular 6 实现地理定位/位置跟踪功能。即使我没有收到任何错误并且这似乎工作正常,我也没有立即得到坐标。这是我的地理位置相关代码。
这是HTML部分
该复选框会自动检查较小的屏幕。
无论如何,即使我没有收到任何错误,我也必须自己手动检查复选框几次,以便查看地理位置坐标并使整个代码正常工作。我第一次打开它时它不起作用,它没有坐标,所以我将它关闭并再次打开。之后它工作正常,因为它应该。
这里有什么问题?我该如何解决?请指教。
谢谢
asynchronous - 等到 openlayers 5 geolocation 返回一个值
我正在使用 openlayers 5 来实现一个简单的地理定位功能:
当检查地理位置复选框时,地理位置启动,通过动画过渡将放大到位置,并自动跟踪位置。它在矢量图层中添加了一个特征。
当取消选中地理定位复选框时,地理定位以及跟踪将被关闭,并且该矢量图层被清除。
我的问题是我不知道如何等到 geolocation 具有 value,所以我可以正确地继续放大该位置。我认为地理定位需要一点时间才能产生价值是正常的,但我不知道如何等到那时。我的代码只是放大了它的当前位置,过了一会儿,地理位置点就呈现在了正确的位置。
我的代码(openlayers 5 + angular 6)
外ngOnInit
和html部分
我也尝试过使用承诺
外ngOnInit
,改变toggleGeolocation
被getpos
调用(我可以in
在控制台上看到),但它从来没有值,所以它返回undefined
.
javascript - 如何在 OpenLayers5 中最大限度地适应地图?
我在地图上添加了一些标记:
添加功能后,我希望地图尽可能缩放,以便所有标记一次可见。怎么做?显然,以前的版本有一个zoomToExtent
现在缺少的方法。
我试过了,但它什么也没做:
编辑:
map.getView().calculateExtent()
最初和添加特征后返回相同的范围。所以我想我的问题是如何正确计算范围。
reactjs - React componentDidMount() 影响渲染
我从 App 组件状态设置面板组件的属性。当我单击按钮时,我想增加(示例)地图坐标。没关系,但我必须在 Panel 的 componentDidMount() 中声明 openlayers 变量,但 componentDidMount 一旦运行,坐标不会改变地图我该怎么办?请帮忙 ... 。
面板组件
openlayers - 检查坐标是否有效 EPSG 3857 ,使用 Openlayers 5
我正在使用 openlayers 5 和 angular6。
我创建了一个简单的表单,用户可以给出 EPSG3857 坐标的 X 和 Y,提交,一个点将在那里渲染,地图将在那里缩放。我为此使用了矢量图层。
我想以某种方式检查 XY 是否是有效的 EPSG3857 坐标。
我尝试使用try/catch
块,但这在我第二次提交表单时有效。
我放了一些疯狂的 XY 6.34 2401111118651.91
,我提交了,创建了点,地图在白色背景中无处放大。我必须第二次提交相同的表格,try/catch
才能真正捕捉到错误。
我怎样才能解决这个问题并立即检查坐标?这是我写的代码
谢谢
javascript - 如何使用 OSM 在 openstreetmap 中获取标记或任何图标
我正在使用 Ol V5.3.1 并使用 asp mvc,这是我的代码,用于获取特定位置的地图和标记或任何图标以显示我的位置
一切都很好,并显示了我的位置的图块和地图,我的浏览器控制台中没有任何错误,但只是不显示图标和标记,因为这是在Example_Marker使用矢量图层的 openlayer 示例
我还找到了另一种在此示例中放置带有覆盖的标记的方法,因为我在下面对此进行了编码
但也没有显示这个
有什么建议吗?
javascript - 如何从 JSON 文件在 OpenLayers 中绘制点类型几何图形
我有一个网页,其中包含一个使用OpenLayers创建的 MAP 实例。它应该以Point类型的几何图形显示世界上所有的海峡。数据(纬度、经度)以 JSON 格式提供。我能够在地图上绘制一个点并给它一个像红点这样的样式,但是由于我在 openlayers 中很天真,所以我安静地想不出一种方法来对 JSON 文件中的所有点做同样的事情。所以我的问题是如何从地图上的 JSON 文件中绘制所有点,并为它们提供一些样式,例如着色并在 JSON 数据的点旁边显示名称。我正在使用 OpenLayers 5.1.3 和 jQuery 2.3,我的代码
和json数据
如何沿标记显示preferredGazetteerName