我triyng在谷歌地圖上添加多個標記。這裏是我的代碼部分在谷歌地圖上添加多個標記在android
public class GoogleMap extends MapView
{
MapController mc;
MapView mapView;
GeoPoint p;
@Override
public void onCreate(Bundle savedInstanceState)
{
....
double lat = Double.parseDouble(bundle.getString("paramLat"));
double lng = Double.parseDouble(bundle.getString("paramLong"));
mc = mapView.getController();
p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
mc.animateTo(p);
mc.setZoom(17);
//---Add a location marker---
MapOverlay mapOverlay = new MapOverlay();
List<Overlay> listOfOverlays = mapView.getOverlays();
listOfOverlays.clear();
listOfOverlays.add(mapOverlay);
mapView.invalidate();
}
class MapOverlay extends com.google.android.maps.Overlay
{
@Override
public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when)
{
super.draw(canvas, mapView, shadow);
//---translate the GeoPoint to screen pixels---
Point screenPts = new Point();
mapView.getProjection().toPixels(p, screenPts);
//---add the marker---
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.pushpin);
canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);
return true;
}
}
我在這裏有兩個問題。當我試圖添加只有一個標記,它的作品,但繪製方法被調用多次。但爲什麼?它何時被調用?
第二個問題是我如何添加新的標記。我創建了名爲p2的第二個geoPoint,之後應該怎麼做?非常感謝你。
並且是繪製多次爲地圖上的每個層。首先繪製網格,然後繪製地圖,然後繪製點。如果它多次顯示屏幕刷新,那麼idk發生了什麼事情。 – Shaun 2011-06-09 15:29:10