SKMaps в Android не отображает несколько аннотаций

Я хочу отобразить несколько аннотаций в SKMaps, но не могу показать более одной аннотации. Например, если я поставлю этот код:

SKAnnotation annotation = new SKAnnotation(0);
    annotation.getLocation().setLongitude(-15.453439196571708);
    annotation.getLocation().setLatitude(28.097941791638732);
    annotation.setMininumZoomLevel(2);
    annotation.setAnnotationType(SKAnnotation.SK_ANNOTATION_TYPE_RED);
    mapView.addAnnotation(annotation, SKAnimationSettings.ANIMATION_POP_OUT);

Я вижу аннотацию на своей карте, но если я добавлю этот код для отображения нескольких аннотаций, я не смогу увидеть несколько аннотаций:

startPoint = currentPosition.getCoordinate();

    viaPoints.clear();
    viaPoints.add(new SKViaPoint(1, new SKCoordinate(28.097941791638732, -15.453439196571708)));
    viaPoints.add(new SKViaPoint(2, new SKCoordinate(28.098324090242386, -15.454540411010385)));
    viaPoints.add(new SKViaPoint(3, new SKCoordinate(28.097633169963956, -15.455050952732563)));
    viaPoints.add(new SKViaPoint(4, new SKCoordinate(28.096485435962677, -15.455639194697142)));

    destinationPoint = new SKCoordinate(28.10000809840858, -15.455355048179626);

    for (SKViaPoint viaPointCurrent : viaPoints){
        SKAnnotation annotation = new SKAnnotation(viaPointCurrent.getUniqueId());
        annotation.getLocation().setLongitude(viaPointCurrent.getPosition().getLongitude());
        annotation.getLocation().setLatitude(viaPointCurrent.getPosition().getLatitude());
        annotation.setMininumZoomLevel(2);
        annotation.setAnnotationType(SKAnnotation.SK_ANNOTATION_TYPE_MARKER);
        mapView.addAnnotation(annotation, SKAnimationSettings.ANIMATION_POP_OUT);
    }

В чем проблема? Кто-нибудь может мне помочь?

С уважением

1 ответ

Я только что попробовал следующий код внутри демонстрационного проекта (2.5.1), переопределяя пример "Аннотации", и все показывается, как и ожидалось:

/**
 * Draws annotations on map
 */
private void prepareAnnotations() {
    List<SKViaPoint> viaPoints = new ArrayList<SKViaPoint>();
    viaPoints.add(new SKViaPoint(1, new SKCoordinate(28.097941791638732, -15.453439196571708)));
    viaPoints.add(new SKViaPoint(2, new SKCoordinate(28.098324090242386, -15.454540411010385)));
    viaPoints.add(new SKViaPoint(3, new SKCoordinate(28.097633169963956, -15.455050952732563)));
    viaPoints.add(new SKViaPoint(4, new SKCoordinate(28.096485435962677, -15.455639194697142)));

    //destinationPoint = new SKCoordinate(28.10000809840858, -15.455355048179626);

    for (SKViaPoint viaPointCurrent : viaPoints) {
        SKAnnotation annotation = new SKAnnotation(viaPointCurrent.getUniqueId());
        annotation.getLocation().setLongitude(viaPointCurrent.getPosition().getLongitude());
        annotation.getLocation().setLatitude(viaPointCurrent.getPosition().getLatitude());
        annotation.setMininumZoomLevel(2);
        annotation.setAnnotationType(SKAnnotation.SK_ANNOTATION_TYPE_MARKER);
        mapView.addAnnotation(annotation, SKAnimationSettings.ANIMATION_POP_OUT);
    }
    // set map zoom level
    mapView.setZoom(13);
    // center map on a position
    mapView.centerMapOnPosition(new SKCoordinate(28.097941791638732, -15.453439196571708));
}

Другие вопросы по тегам