Mapbox:如果我们想在地图上显示一条线,是否需要LineLayer

Mapbox: Do we need LineLayer if we want to display a Line on the map

我正在阅读注释插件的文档和示例,但仍然不太了解如何使用线条。

我想创建一条线,需要用额外的坐标经常更新。在 Google 地图中很容易,因为我们声明了一个 Polyline 对象,获取 LatLng 点并设置新的点。基本上,我不会使用大量的定制,只使用线条的宽度和颜色。

那么我们是否需要定义一个层,或者我们可以只使用这种情况下的选项?

第二个问题:(从文档中,我看到了很多使用 FeatureCollection 和 GeoJSON 的示例)这是更新线路的唯一方法吗?

Tldr;有两个主要选项,选择哪条路线基本上取决于您。每次您想更新视线时,您的 LatLng 坐标可用于创建 LineString/Line

您可以使用 LineLayer:

实际上可以是 style.addSource(new GeoJsonSource("line-source", LineString.fromLngLats(routeCoordinates))); .

正在更新 LineLayer 正在使用的源的 GeoJSON。每次要更新时创建一个新的LineString

参见 GeoJSON 更新部分中的第二个代码块(source.setGeoJson(),等等):https://docs.mapbox.com/android/java/overview/geojson/#geojson-updates

您可以在注释插件中使用LineManager

https://github.com/mapbox/mapbox-plugins-android/blob/master/app/src/main/java/com/mapbox/mapboxsdk/plugins/testapp/activity/annotation/LineActivity.java#L48

https://github.com/mapbox/mapbox-plugins-android/blob/master/app/src/main/java/com/mapbox/mapboxsdk/plugins/testapp/activity/annotation/LineActivity.java#L64-L73

通过LineManager

更新线路

每次要更新时创建一个新的Line