// Created by plusminus on 00:23:14 - 03.10.2008
package org.osmdroid.samples;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.Toast;
import org.osmdroid.api.IMapController;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapView;
import org.osmdroid.views.overlay.ItemizedIconOverlay;
import org.osmdroid.views.overlay.ItemizedOverlay;
import org.osmdroid.views.overlay.MinimapOverlay;
import org.osmdroid.views.overlay.OverlayItem;
import java.util.ArrayList;
/**
*
* @author Nicolas Gramlich
*
*/
public class SampleWithMinimapItemizedoverlay extends Activity {
// ===========================================================
// Constants
// ===========================================================
private static final int MENU_ZOOMIN_ID = Menu.FIRST;
private static final int MENU_ZOOMOUT_ID = MENU_ZOOMIN_ID + 1;
// ===========================================================
// Fields
// ===========================================================
private MapView mOsmv;
private ItemizedOverlay<OverlayItem> mMyLocationOverlay;
// ===========================================================
// Constructors
// ===========================================================
/** Called when the activity is first created. */
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final RelativeLayout rl = new RelativeLayout(this);
this.mOsmv = new MapView(this);
this.mOsmv.setTilesScaledToDpi(true);
rl.addView(this.mOsmv, new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
/* Itemized Overlay */
{
/* Create a static ItemizedOverlay showing a some Markers on some cities. */
final ArrayList<OverlayItem> items = new ArrayList<>();
items.add(new OverlayItem("Hannover", "SampleDescription", new GeoPoint(52370816, 9735936)));
items.add(new OverlayItem("Berlin", "SampleDescription", new GeoPoint(52518333, 13408333)));
items.add(new OverlayItem("Washington", "SampleDescription", new GeoPoint(38895000, -77036667)));
items.add(new OverlayItem("San Francisco", "SampleDescription", new GeoPoint(37779300, -122419200)));
items.add(new OverlayItem("Tolaga Bay", "SampleDescription", new GeoPoint(-38371000, 178298000)));
/* OnTapListener for the Markers, shows a simple Toast. */
this.mMyLocationOverlay = new ItemizedIconOverlay<>(items,
new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>() {
@Override
public boolean onItemSingleTapUp(final int index, final OverlayItem item) {
Toast.makeText(
SampleWithMinimapItemizedoverlay.this,
"Item '" + item.getTitle() + "' (index=" + index
+ ") got single tapped up", Toast.LENGTH_LONG).show();
return true; // We 'handled' this event.
}
@Override
public boolean onItemLongPress(final int index, final OverlayItem item) {
Toast.makeText(
SampleWithMinimapItemizedoverlay.this,
"Item '" + item.getTitle() + "' (index=" + index
+ ") got long pressed", Toast.LENGTH_LONG).show();
return false;
}
}, getApplicationContext());
this.mOsmv.getOverlays().add(this.mMyLocationOverlay);
}
/* MiniMap */
{
final MinimapOverlay miniMapOverlay = new MinimapOverlay(this,
mOsmv.getTileRequestCompleteHandler());
this.mOsmv.getOverlays().add(miniMapOverlay);
}
this.setContentView(rl);
// Default location and zoom level
IMapController mapController = mOsmv.getController();
mapController.setZoom(5);
GeoPoint startPoint = new GeoPoint(50.936255, 6.957779);
mapController.setCenter(startPoint);
}
// ===========================================================
// Getter & Setter
// ===========================================================
// ===========================================================
// Methods from SuperClass/Interfaces
// ===========================================================
@Override
public boolean onCreateOptionsMenu(final Menu pMenu) {
pMenu.add(0, MENU_ZOOMIN_ID, Menu.NONE, "ZoomIn");
pMenu.add(0, MENU_ZOOMOUT_ID, Menu.NONE, "ZoomOut");
return true;
}
@Override
public boolean onMenuItemSelected(final int featureId, final MenuItem item) {
switch (item.getItemId()) {
case MENU_ZOOMIN_ID:
this.mOsmv.getController().zoomIn();
return true;
case MENU_ZOOMOUT_ID:
this.mOsmv.getController().zoomOut();
return true;
}
return false;
}
// ===========================================================
// Methods
// ===========================================================
// ===========================================================
// Inner and Anonymous Classes
// ===========================================================
}