[我使用Mapbox Tileset API
并生成了一个自定义图块集(巨大的400MB GeoJSON数据),该图集已上传到Mapbox服务器,并在工作室中作为自定义填充层添加到我们的样式中。
通过这种方式,仅使用表达式就可以显示绿色(已访问)和红色(剩余)位置的自定义区域(作为多边形)。
我想告诉一个点(GPS坐标)是否在tileet源/图层的多边形内,哪一个(即使应用程序在后台运行(GPS跟踪在后台运行,我想通知用户位于多边形内时的用户)。
使用queryRenderedFeatures
会很好,但不幸的是,当应用程序在后台或用户的位置不在当前视口之外时,它不起作用。
即使在视口之外,是否有解决方案可以在GPS坐标处获取要素列表?
[另一个要求是,它应在设备离线时工作,因此Tilequery API
将无济于事。
下载具有有限缩放范围的样式的脱机数据可以正常工作,即使设备处于脱机状态,我也可以看到我的自定义源层(多边形)。
因此,我认为当设备离线时,也应该有一种查询tileet源的方法。
当前,当设备离线时,我生成了一个简化的GeoJSON文件,并将其与turf @ points-within-polygon一起使用,但是存在间隙,有时多边形会相互覆盖(由于简化)等...如果我降低了容忍度,文件太大了,无法离线下载和存储,因此这不是一个好的解决方法,而只是一个不好的解决方法。
当应用程序在后台且设备处于脱机状态时,即使在视口之外,我也可以对自定义Tileset源进行PIP(多边形中点)查询吗?
假设这是您的实际问题:
当应用程序在后台且设备处于脱机状态时,即使在视口之外,我也可以对自定义Tileset源进行PIP(多边形中点)查询吗?
如果设备处于脱机状态,那么任何需要按需获取切片的解决方案(例如Mapbox-GL或TileQuery中的切片集都已淘汰。
您说存储整个GeoJSON已经用完了,因为它太大了。
我认为剩下的解决方案是生成一个单缩放级别的图块集并将其存储在本地,然后使用query-mbtiles之类的东西对其进行查询。