Изредка видны черные прямоугольники с наложением SKMap при попытке просмотра карты с помощью SKAnnotations (фиолетовый маркер) на Android SDK 2.5

В настоящее время мы используем Skobbler 2.5 для создания навигационного приложения для Android. Одна функция в приложении позволяет размещать аннотации по ранее рассчитанному маршруту. Аннотации можно размещать на карте, когда SKMap виден на экране или в фоновом режиме.

Мы заметили, что иногда при добавлении аннотаций, когда карта в данный момент не видна, а затем, если сделать карту видимой, в местах, где были добавлены аннотации, появляются черные прямоугольники.

Сами аннотации добавляются с использованием устаревших .setImagePath() метод, но это из-за обходного пути, который был установлен, чтобы сделать заметки видимыми при уменьшении масштаба карты до уровня масштабирования менее 4.

Вот пример того, как аннотации в настоящее время добавляются:

SKAnnotation annotation = new SKAnnotation(i++);
annotation.getLocation().setLongitude(result.longitude);
annotation.getLocation().setLatitude(result.latitude);
// annotation.setAnnotationType(SKAnnotation.SK_ANNOTATION_TYPE_PURPLE);
annotation.setMininumZoomLevel(2);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
if (metrics.densityDpi < DisplayMetrics.DENSITY_HIGH) {
    annotation.setImagePath(SKMaps.getInstance().getMapInitSettings().
            getMapResourcesPath() + "/.Common/icon_greypin@2x.png");
    // set the size of the image in pixel
    annotation.setImageSize(128);
} else {
    annotation.setImagePath(SKMaps.getInstance().getMapInitSettings().
            getMapResourcesPath() + "/.Common/icon_greypin@3x.png");
    // set the size of the image in pixels
    annotation.setImageSize(256);
}
mapView.addAnnotation(annotation, SKAnimationSettings.ANIMATION_POP_OUT);

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

Обычно это должно выглядеть примерно так:

введите описание изображения здесь

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

Спасибо за любую помощь по этому вопросу! Кит

1 ответ

Решение

Я бы посмотрел весь ваш проект для подробного ответа. Отсутствует что:

  • не добавляйте аннотации / визуальные элементы, когда карта не видна, но задайте изменения в "буфере" и выполняйте изменения, когда карта возобновляется
  • API-интерфейс imagePath устарел, в следующем обновлении мы его полностью удалим. API пользовательских представлений предлагает больший контроль и является более масштабируемым, поэтому мы будем поддерживать только этот API. Вы можете попробовать переключить все аннотации на использование пользовательских представлений и посмотреть, воспроизводится ли проблема до сих пор.
  • Вы используете несколько видов карты в вашем приложении? если да, пожалуйста, смотрите: http://developer.skobbler.com/getting-started/android
Другие вопросы по тегам