Нарисуйте маркер в Mapbox Android из пользовательского URL внешнего изображения - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь найти способ нарисовать маркер в Mapbox Android SDK, но во всех примерах показано, как использовать пользовательское изображение из папки DRAWABLE.

Я бы хотел разместить пользовательский значок SVG из пользовательского URL. Если не SVG, по крайней мере, PNG для прозрачности.

Возможно ли это?

Примеры, которые я нашел, похожи на этот:

Bitmap icon = BitmapFactory.decodeResource(
    MainActivity.this.getResources(), R.drawable.custom_marker);
    mapboxMap.addImage(MARKER_IMAGE, icon);

1 Ответ

0 голосов
/ 25 января 2019

С оговоркой, что в v7.0.0 у вас есть возможность использовать Плагин аннотаций , который обеспечивает немного более интуитивно понятный, объектно-ориентированный способ настройки слоя значков / аннотаций, вот мой рекомендуемый подход:

Выложенный вами фрагмент кода является частью потока Style -> Source -> Layer, используемого для стилизации среды выполнения в SDK Mapbox. Для ваших целей, особенно если вы добавляете на карту несколько маркеров с одним и тем же значком, вы должны добавить свои маркеры через SymbolLayer. Есть рабочий пример того, как синтаксис SymbolLayer работает здесь (он также включает в себя некоторый код для добавления интерактивности к вашим маркерам). Вы также можете быстро получить стандартный код на игровой площадке Mapbox .

Чтобы ответить на ваш основной вопрос: SDK не содержит каких-либо удобных методов для загрузки внешних SVG или PNG напрямую в виде iconImage SymbolLayer, поэтому вам нужно использовать библиотеку, такую ​​как Слайд или Пикассо , чтобы получить изображение и преобразовать его в растровое изображение, прежде чем передать его в mapboxMap.addImage().

...