Показать несколько закладок на карте - PullRequest
0 голосов
/ 04 апреля 2019

Я использую пример Graphhopper Android с использованием openstreemaps.У меня есть этот код для отображения маркера на карте:

  void loadMap(File areaFolder) {
    logUser("Cargando mapa");

    // Map events receiver
    mapView.map().layers().add(new MapEventsReceiver(mapView.map()));
    // Map file source
    MapFileTileSource tileSource = new MapFileTileSource();
    tileSource.setMapFile(new File(areaFolder, currentArea + ".map").getAbsolutePath());
    VectorTileLayer l = mapView.map().setBaseMap(tileSource);
    mapView.map().setTheme(VtmThemes.DEFAULT);
    mapView.map().layers().add(new BuildingLayer(mapView.map(), l));
    mapView.map().layers().add(new LabelLayer(mapView.map(), l));

    // Markers layer
    itemizedLayer = new ItemizedLayer<>(mapView.map(), (MarkerSymbol) null);
    mapView.map().layers().add(itemizedLayer);

    // Map position
    if (extras != null) {
        if (extras.getBoolean("esUnArray")) {

            final ArrayList<PosicionGeografica> array = new ArrayList<>();
            // array.add(new PosicionGeografica("Santiago de Cuba", 20.0208302, -75.8266678));
            array.add(new PosicionGeografica("Fomento", 22.1039, -79.7217));

            for (PosicionGeografica object : array) {

                rlatitud = object.getLatitud();
                rlongitud = object.getLongitud();

                itemizedLayer.removeAllItems();
                mapView.map().setMapPosition(rlatitud, rlongitud, 1 << 20);

                GeoPoint enti = new GeoPoint(rlatitud, rlongitud);
                itemizedLayer.addItem(createMarkerItem(enti, R.drawable.marker_icon_green));
                mapView.map().updateMap(true);
            }

        } else {

            itemizedLayer.removeAllItems();
            mapView.map().setMapPosition(rlatitud, rlongitud, 1 << 20);

            GeoPoint enti = new GeoPoint(rlatitud, rlongitud);
            itemizedLayer.addItem(createMarkerItem(enti, R.drawable.marker_icon_green));
            mapView.map().updateMap(true);
        }

    } else {
        mapView.map().setMapPosition(23.135039, -82.359495, 1 << 16);
        mapView.map().updateMap(true);

    }

    setContentView(mapView);
    //loadGraphStorage();
}

@SuppressWarnings("deprecation")
private MarkerItem createMarkerItem(GeoPoint p, int resource) {
    Drawable drawable = getResources().getDrawable(resource);
    Bitmap bitmap = AndroidGraphics.drawableToBitmap(drawable);
    MarkerSymbol markerSymbol = new MarkerSymbol(bitmap, 1.5f, 1);
    MarkerItem markerItem = new MarkerItem("", "", p);
    markerItem.setMarker(markerSymbol);
    return markerItem;
}

Когда то, что входит в inte.extras, это одна географическая позиция отображается правильно.Но когда приходит массив географических позиций, отображается только маркер последнего элемента массива.Помогите!

...