Mapbox: как исправить наложение линии на символ - PullRequest
0 голосов
/ 29 мая 2020

Я использую SymbolManager для отображения двух символов на карте. Вот пример:

enter image description here

Темный символ из-за того, что я тестирую проект на эмуляторе, но линия уходит вниз символ, как и должно быть. Проблема связана с другим символом (флаг fini sh). После того, как я буду готов рисовать линию, вызывается следующий блок кода:

symbolManager = new SymbolManager(mapView,mMapboxMap,style);

symbolManager.setIconAllowOverlap(true);
symbolManager.setIconIgnorePlacement(true);

SymbolOptions symbolOptionsFinishFlag = new SymbolOptions()
              .withIconImage(IMAGE_FINISH_FLAG)
              .withIconSize(2.0f)
              .withLatLng(newLatLngs.get(newLatLngs.size()-1));

symbolManager.create(symbolOptionsFinishFlag);

LatLngBounds.Builder builder = new LatLngBounds.Builder();
builder.includes(newLatLngs);
LatLngBounds bounds = builder.build();

final CameraUpdate cu = new CameraUpdateFactory().newLatLngBounds(bounds,300);
mMapboxMap.easeCamera(cu,5000);

Я проверил несколько примеров на сайте Mapbox, и они кажутся правильными. Однако Symbol находится под Line, как я могу добавить его?

1 Ответ

0 голосов
/ 29 мая 2020

Хотя SymbolManager s может быть полезным средством для предоставления абстракции по методам, необходимым для добавления символов на карту, вы можете получить больше гибкости, работая с родным SymbolLayer s напрямую. В этом примере показано, как добавить значки слоев символов на карту, а в этом примере показано, как указать порядок слоев при добавлении новых слоев. Итак, добавив два слоя символов для ваших начальных и конечных значков sh и линейный слой для линии между ними, вы можете использовать style.addLayerBelow(finishFlagLayer, "name_of_line_layer").

...