Mapbox: нужен ли нам LineLayer, если мы хотим отображать линию на карте - PullRequest
2 голосов
/ 07 мая 2020

Я читаю документацию модуля аннотации вместе с примерами, но все еще не могу понять, как работать с линиями.

Я хочу создать линию, которую нужно часто обновлять дополнительными координатами. В Google Maps это легко, так как мы объявляем объект Polyline, берем точки LatLng и устанавливаем новую. В принципе, я не собираюсь использовать много настроек, только ширину и цвет линии.

Итак, нам нужно определить слой, или мы могли бы просто использовать параметры для этого случая?

И второй вопрос: (Из документации я вижу много примеров с FeatureCollection и Geo JSON) Это единственный способ обновить строку?

1 Ответ

2 голосов
/ 08 мая 2020

Tldr; Есть два основных варианта, и в основном вам решать, какой маршрут выбрать. Ваши координаты LatLng могут использоваться для создания LineString / Line каждый раз, когда вы хотите обновить визуальную строку.

Вы можете использовать LineLayer:

на самом деле может быть просто style.addSource(new GeoJsonSource("line-source", LineString.fromLngLats(routeCoordinates)));.

Обновление Geo JSON источника, который используется LineLayer. Создавайте новый LineString каждый раз, когда вы хотите обновить:

См. Второй блок кода в разделе обновлений Geo JSON (source.setGeoJson(), et c.): https://docs.mapbox.com/android/java/overview/geojson/#geojson -обновления

Вы можете использовать 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

enter image description here

Создавайте новый Line каждый раз, когда вы хотите обновить съел

...