Drawable Resource в Mapbox Android - PullRequest
       43

Drawable Resource в Mapbox Android

0 голосов
/ 08 апреля 2020

У меня есть несколько значков в качестве ресурсов для рисования, которые я хотел бы поместить в определенные c местоположения на карте MapBox в android студии, но я не знаю, как.

Я попытался преобразовать мои файлы ресурсов в растровые изображения, а затем преобразуют эти растровые изображения в строки, чтобы заполнить метод withIconImage класса SymbolOptions (я знаю, что он работает с определенными строками, такими как "airport", "fire-station").

Может ли кто-нибудь мне помочь?

Спасибо!

1 Ответ

1 голос
/ 08 апреля 2020

В этом примере из документации Mapbox Android показано, как добавить локальный ресурс для рисования из приложения Android на карту Mapbox как SymbolLayer. Вспомогательный метод initSpaceStationSymbolLayer специально позаботится об этом:

private void initSpaceStationSymbolLayer(@NonNull Style style) {
  style.addImage(
    "space-station-icon-id",
    BitmapFactory.decodeResource(this.getResources(), R.drawable.iss)
  );

  style.addSource(new GeoJsonSource("source-id"));

  style.addLayer(new SymbolLayer("layer-id", "source-id").withProperties(
    iconImage("space-station-icon-id"),
    iconIgnorePlacement(true),
    iconAllowOverlap(true),
    iconSize(.7f)
  ));
}

Однако вы упомянули SymbolOptions, поэтому вполне вероятно, что вы используете плагин Mapbox Annotation для Android вместо непосредственного добавления SymbolLayer с. Как указано в документации для метода SymbolOptions#withIconImage, изображения значков задаются как String s, которые ссылаются на имена изображений на листе sprite вашего стиля. В этом примере из Mapbox Android Демонстрационное приложение плагинов демонстрирует, как добавить изображение из папки ресурсов в ваш стиль, чтобы затем использовать его в качестве изображения значка в SymbolManager. А именно, ID_ICON_AIRPORT определяется как "airport" здесь , затем вспомогательный метод addAirplaneImageToStyle здесь добавляет соответствующее изображение в стиль, и, наконец, создается Symbol здесь с использованием SymbolOptions#withIconImage и ID_ICON_AIRPORT в качестве аргумента. Вы используете этот же подход для добавления своего собственного нарисованного изображения.

...