Sunday, March 4, 2012

Map Overlay item in Android

In Map overlayItem Class:


package com.svdeveloper.areacode.common;

import java.util.ArrayList;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Point;
import android.graphics.drawable.Drawable;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.PopupWindow;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.MapView;
import com.google.android.maps.OverlayItem;

public class MapItemizedOverlay extends ItemizedOverlay<OverlayItem> {
private static int maxNum = 3;
private OverlayItem overlays[] = new OverlayItem[maxNum];
private int index = 0;
private boolean full = false;
private MapItemizedOverlay itemizedoverlay;

public MapItemizedOverlay(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
}

@Override
protected OverlayItem createItem(int i) {
return overlays[i];
}

@Override
public int size() {
if (full) {
return overlays.length;
} else {
return index;
}

}

public void addOverlay(OverlayItem overlay) {
if (index < maxNum) {
overlays[index] = overlay;
} else {
index = 0;
full = true;
overlays[index] = overlay;
}
index++;
populate();
}
}


In Activity :

GeoPoint point = new GeoPoint(lat, lng);

Drawable drawable = this.getResources().getDrawable(R.drawable.pin);
itemizedoverlay = new MapItemizedOverlay(drawable);
OverlayItem overlayitem = new OverlayItem(point, "", "");
itemizedoverlay.addOverlay(overlayitem);
mapView.getOverlays().add(itemizedoverlay);
mapController.animateTo(point);

No comments:

Post a Comment