Создание пользовательского наложения, в частности круга с радиусом (цветным) в Android MapBox GL

Создание пользовательского наложения, в частности, круга с радиусом (цветным) в Android MapBox GL. Это позволяет динамически изменять радиус, используя панель поиска.

Я пытаюсь создать несколько пользовательских маркеров, и я использовалSimpleCircleView но у меня возникли проблемы при попытке отобразить его в Android MapBox GL, и это создало много ошибок.

Событие касания карты не отвечает, как только мойCircleOverlay отображается на картеМаркер не остается в своих координатах после увеличения или уменьшения масштаба.Обновление маркеров не работает, поэтому я должен удалить, а затем снова добавить маркер.Цвет не соответствует цвету, который я установил в маркере.

Я ограничу свои публикации в коде, потому что это репо мое и чтобы проблема была понятной.

При создании пользовательских оверлеев я должен сделать следующие классы:

CircleMarkerView.java - Пользовательский вид маркера[CircleMarkerViewOptions.java] (https://github.com/spurdow/SimpleCircleView/blob/master/app/src/main/java/com/spurdow/circleviewtest/CircleMarkerViewOptions.java) - это должно использоваться с CircleMarkerViewSimpleCircleView.java - Это мой пользовательский вид для динамического круга, меняющего его радиус и т. Д.MainActivityMapBox - Это где все это поставить

Это пример кода в репо.

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

Ответы на вопрос(1)

Решение Вопроса

1. Событие касания карты не отвечает, как только мой CircleOverlay отображается на карте
Это проблема, которую мы планируем решить к следующему выпуску, вы можете следить за прогрессом в этомВот.

2. Маркер не остается в своих координатах после увеличения или уменьшения масштаба.
Это может быть связано с тем, что вы неправильно привязываете значок маркера, используя.setAnchor() или ваш значок имеет отступы вокруг него. Для круга вам понадобится привязка по центру (с использованием 0.5f). Непосредственно перед предыдущей стабильной версией была введена ошибка, вызывающаяякорь не работает правильно, Если это проблема, используйте4.2.0-SNAPSHOT.

3. Обновление маркеров не работает, поэтому я должен удалить, а затем снова добавить маркер. Не могли бы вы уточнить этот вопрос? Вы можете использовать

Marker marker = mapboxMap.addMarker(new MarkerViewOptions()...

Когда вы должны использовать:

MarkerView marker = mapboxMap.addMarker(new MarkerViewOptions()...

Что даст вам больше возможностей для обновления маркеров.

4. Цвет не соответствует цвету, который я установил в маркере.
Не могли бы вы уточнить, что вы подразумеваете под этим?

Похоже, вы хотите сделать то, что этот пример делает вTestApp? Я следовал бы вместе с кодом, найденным там.

 david22 июл. 2016 г., 06:05
Возможно, это решит мою проблему, но я все еще нахожусь в процессе изучения того, как заставить изображение динамически меняться во время выполнения. Но сейчас я буду ждать оверлея. Я тот, кто писал вам по электронной почте и на GitHub. Спасибо за ваш ответ
 david22 июл. 2016 г., 06:03
на номер 3. Это потому, что мне нужно обновить радиус маркера, но он не обновляется, когда я обновляюMarkerView, поэтому я должен удалить и добавить его снова.

Ваш ответ на вопрос