【问题标题】:How to get a geometry from a Mapbox GL Native GeoJSONSource?如何从 Mapbox GL Native GeoJSONSource 获取几何图形?
【发布时间】:2019-07-14 15:48:31
【问题描述】:

我在 NativeScript {N} 应用程序中使用 Mapbox GL Native Android SDK v 7.1.2。

我使用 GeoJSON 源在地图上绘制了一条线。

我想稍后在代码中从线中检索几何图形(而不是将坐标分开放置)。

我可以使用Style.getSource(id) 获得对行源的引用,但是我找不到示例或解释如何正确形成querySourceFeatures() 的表达式过滤器以从中获取第一个特征的几何图形列表。

不包括 querySourceFeatures() 的参数会导致 NativeScript 无法解析调用,但将 null 传递给它会返回一个空列表。

如何形成Expression filter 以从 GeoJSON 源返回第一个要素的几何?

【问题讨论】:

标签: nativescript mapbox mapbox-android


【解决方案1】:

事实证明,在 Android Mapbox GL Native SDK 中,您在添加源后无法立即查询其几何图形。

要从您可以使用的来源获取所有功能:

source.querySourceFeatures( com.mapbox.mapboxsdk.style.expressions.Expression.literal(true));

但是,在调用此方法之前,您必须让地图有机会更新源。在我的测试中,我刚刚做了一个:

setTimeout( () => {
  ....
}, 500 );

在生产中,您可能会设置回调 onDidBecomeIdleListener

遗憾的是,我注意到源值在添加到地图后会被修改。我从源中查询的内容与我输入的内容不完全匹配,因此这种方法对我没有用。

【讨论】:

  • 地图加载后添加一个按钮来调用querySourceFeatures()怎么样?我使用过 onDidBecomeIdleListener 但它返回空结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多