我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