如何从Mapbox GL Native GeoJSONSource获取几何?

时间:2019-02-20 20:53:33

标签: nativescript mapbox mapbox-android

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

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

我想在代码的较晚一点从该线中检索几何形状(这与将坐标分开放置相反)。

我可以使用Style.getSource(id)获得对行源的引用,但是找不到示例或说明如何正确地为querySourceFeatures()形成表达式过滤器以获取列表中的第一个功能。

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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

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

可悲的是,我注意到将源值添加到地图后对其进行了修改。我从源头查询的内容与我输入的内容不完全匹配,因此这种方法对我没有用。