ItemizedOverlay 는 MapView 위에 여러 지점을 동시에 표시하고 싶을 때 사용하는 클래스인 것 같다.
아래는 ItemizedOverlay 를 이용한 예제...
MapViewer.java
HelloItemizedOverlay.java
아래는 ItemizedOverlay 를 이용한 예제...
MapViewer.java
package com.huikyun.android.mapsamples; import java.util.List; import android.graphics.drawable.Drawable; import android.os.Bundle; import com.google.android.maps.GeoPoint; import com.google.android.maps.MapActivity; import com.google.android.maps.MapController; import com.google.android.maps.MapView; import com.google.android.maps.Overlay; import com.google.android.maps.OverlayItem; public class MapViewer extends MapActivity { private MapView mMapView; private MapController mMapController; private ListmMapOverlays; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.map_viewer); mMapView = (MapView) findViewById(R.id.mapView); mMapController = mMapView.getController(); mMapOverlays = mMapView.getOverlays(); GeoPoint geoPoint = new GeoPoint(37498806, 126932621); mMapController.animateTo(geoPoint); mMapController.setZoom(16); Drawable drawable = getResources().getDrawable(R.drawable.androidmarker); HelloItemizedOverlay itemizedOverlay = new HelloItemizedOverlay(drawable); OverlayItem overlayItem = new OverlayItem(geoPoint, "Item 1", "1번 아이템"); itemizedOverlay.addOverlay(overlayItem); mMapOverlays.add(itemizedOverlay); } @Override protected boolean isRouteDisplayed() { return false; } }
HelloItemizedOverlay.java
package com.huikyun.android.mapsamples; import java.util.ArrayList; import android.app.AlertDialog; import android.content.Context; import android.graphics.drawable.Drawable; import com.google.android.maps.ItemizedOverlay; import com.google.android.maps.OverlayItem; public class HelloItemizedOverlay extends ItemizedOverlay { private Context mContext; private ArrayListmOverlays = new ArrayList (); public HelloItemizedOverlay(Drawable defaultMarker) { super(boundCenterBottom(defaultMarker)); } public HelloItemizedOverlay(Drawable defaultMarker, Context context) { super(defaultMarker); mContext = context; } public void addOverlay(OverlayItem overlay) { mOverlays.add(overlay); populate(); } @Override protected OverlayItem createItem(int i) { return mOverlays.get(i); } @Override protected boolean onTap(int index) { OverlayItem item = mOverlays.get(index); AlertDialog.Builder dialog = new AlertDialog.Builder(mContext); dialog.setTitle(item.getTitle()); dialog.setMessage(item.getSnippet()); dialog.show(); return true; } @Override public int size() { return mOverlays.size(); } }