typescript - 在地图中搜索图层要素时,坐标返回空
问题描述
当我尝试通过按钮事件使用 layer.getSource().getFeatures() 在 OL 地图中搜索图层要素时,这些要素会返回其坐标为空:
flatCoordinates: []
这一层包含线串特征,但是当我尝试用另一个层做同样的事情时,这次是Point
几何,坐标返回了预期的正确值。这个问题只发生在LineString
图层上。
我已经尝试使用 Promise 来等待变量的填充,我还尝试使用 if (layer.getSource().getState() === 'ready') 在执行之前检查函数的状态,但是考虑到按钮事件是在所有功能都已加载后发生的,这似乎不是问题。
所有要素都通过存储加载并在地图上创建,地图以正确的坐标返回并正确显示。如果我在加载后尝试获取这个特征的数据,我可以完美地观察到坐标的数据。问题仅在于事件的调用。
目前获取特征的代码是:
this.exportFeaturesSubscription = this.datashare.exportFeaturesObservable().subscribe(element => {
// Get array of features
let points = this.vectorPoint.getSource().getFeatures(); // Return with correct coordinates
let lines = this.pathsLayer.getSource().getFeatures(); // Return with empty coordinates
});
我需要他们调用 writeFeatures(),以便能够创建和导出 KML 文件。我将一个特征数组传递给这个函数,但是只有 LineString 类型的特征没有坐标返回,所以我收到了这个错误:
断言 34 - 无效的几何布局。必须是 XY、XYZ、XYM 或 XYZM。
我必须再次指出,在调用此导出函数之前,这些 LineString 类型的相同功能已完全加载并显示在地图上。
解决方案
推荐阅读
- reactjs - 为什么我的 React 应用无法在 Github 页面上运行?
- c++ - C++应该如何执行PowerShell命令?
- c# - 访问会话信息会给出 System.NullReferenceException
- scala - 错误:未找到:Scala 中的值 inputJPG
- powershell - Get-ADGroup 检索不返回其他林中成员的成员(但返回不同域/同一林中的成员)
- java - 宾果号码类:接收错误
- node.js - 使用 Node JS 和 React 出错
- java - 如何编辑对话框文本
- deep-linking - 如何为我的 Android 应用添加深层链接?
- python - 导入 PyInstaller 模块并编译时出错