Я использую пример 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, это одна географическая позиция отображается правильно.Но когда приходит массив географических позиций, отображается только маркер последнего элемента массива.Помогите!