MapBox 能够检测坐标是否在水体上?

MapBox ability to detect if coordinates is on a body of water?

首先,MapBox允许下载离线区域。好吧,为太平洋下载离线区域并没有什么意义。我从 QA 部门收到了一张票,至少可以防止用户在请求的坐标位于水体上时下载任何东西(如果是河流、瀑布、污水等则无关紧要)。我必须防止用户意外下载主要由水体(主要是海洋)组成的离线区域。

我正在为用户群是海员的客户创建一个应用程序,下载离线区域可能会很昂贵。所以我的问题是 MapBox 能够在我不使用 this hack 的情况下检测到这一点?

谢谢!

您可以直接查询地图图块,无需进行 API 调用。这样做的一个例子是,如果你想检查用户中心视口点。

LatLng center = mapboxMap.getCameraPosition().target;
final PointF pixel = mapboxMap.getProjection().toScreenLocation(center);
List<Feature> features = mapboxMap.queryRenderedFeatures(pixel, "water");

这将 return 如果用户当前正在查看水,则其大小至少为 1 的要素列表,否则,其大小将为 0。

请注意,您也可以考虑整个视口区域或任何边界框区域来执行此操作。