1

我使用Mapbox Tileset API并生成了一个上传到 Mapbox 服务器的自定义图块集(它是一个巨大的 400MB 的 GeoJSON 数据),并作为自定义填充层添加到我们工作室的样式中。

通过这种方式,我可以仅使用表达式以绿色(已访问)和红色(剩余)位置显示世界的自定义区域(作为多边形)。

我想知道一个点(GPS坐标)是否在tileset源/图层的多边形内以及哪个点,即使应用程序在后台(GPS跟踪在后台运行,我想通知用户当它们在多边形内时)。

使用queryRenderedFeatures会很棒,但不幸的是,当应用程序在后台或用户的位置在当前视口之外时,它不起作用。

是否有任何解决方案可以获取 GPS 坐标处的特征列表,即使它位于视口之外?

另一个要求是,它应该在设备离线时工作,所以Tilequery API不会有帮助。

下载我们风格的离线数据,缩放范围有限,即使设备离线,我也可以看到我的自定义源层(多边形)。

所以我认为应该有一种方法可以在设备离线时查询tileset-source。

目前,我生成了一个简化的 GeoJSON 文件,并在设备离线时将其与 turf@points-within-polygon 一起使用,但存在间隙,有时多边形相互覆盖(由于简化)等......如果我让降低文件的容差级别将太大而无法离线下载和存储,因此这并不是真正的解决方案,只是一种糟糕的解决方法。

当应用程序在后台并且设备处于离线状态时,即使在视口之外,我也可以对自定义 Tileset 源进行 PIP(多边形点)查询吗?

4

1 回答 1

1

假设这是您的实际问题:

当应用程序在后台并且设备处于离线状态时,即使在视口之外,我也可以对自定义 Tileset 源进行 PIP(多边形点)查询吗?

如果设备处于离线状态,那么任何需要按需获取瓦片的解决方案(例如 Mapbox-GL 或 TileQuery 中的瓦片集)都将失效。

你说存储整个 GeoJSON 已经过时了,因为它太大了。

我认为剩下的解决方案是生成一个单缩放级别的图块集并将其存储在本地,然后使用类似query-mbtiles的东西进行查询。

于 2020-06-09T06:07:56.270 回答