[Mapbox-Android]如何显示用户所在地附近的所有商店,医院?

时间:2019-09-24 08:46:20

标签: java android location mapbox mapbox-android

有一个教程:https://docs.mapbox.com/help/tutorials/android-store-locator/ 这显示了如何手动添加商店,创建数据集并将其显示在我们的应用程序中。我想让所有医院,银行靠近特定用户位置。我该如何实现?请帮忙!

1 个答案:

答案 0 :(得分:0)

您将要使用Mapbox Tilequery API查询Mapbox Streets的building层或查询具有银行/医院数据的自定义样式。

https://docs.mapbox.com/android/java/overview/tilequery/

https://docs.mapbox.com/android/java/examples/tilequery/

使用https://docs.mapbox.com/playground/tilequery/来使用Mapbox Tilequery API。例如,https://api.mapbox.com/v4/mapbox.mapbox-streets-v8/tilequery/-122.4052,37.7564.json?limit=19&radius=536&layers=building&dedupe=true&access_token=PASTE_YOUR_MAPBOX_TOKEN_HERE为您提供FeatureCollection个对象中的Feature个。遍历每个Feature,以查看其type属性是否为hospitalbank等。

https://imgur.com/UmsdOOY

关于使用设备的位置用于Tilequery请求:

https://docs.mapbox.com/android/maps/examples/show-a-users-location所示设置LocationComponent。然后,您可以执行以下操作来获取设备位置:

locationComponent.getLastKnownLocation().getLatitude();
locationComponent.getLastKnownLocation().getLongitude();

或者如果您需要跟踪设备位置:

https://docs.mapbox.com/help/tutorials/android-location-listening

https://docs.mapbox.com/android/maps/examples/location-change-listening