Изредка видны черные прямоугольники с наложением 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