谷歌地图图钉错误

时间:2012-03-09 05:24:49

标签: android

我想在地图上显示特定位置,并在我想要放置图钉通知的特定位置。我尝试了下面的代码,但它显示nullpointer异常,请帮我添加标记。

public class MapDemoActivity extends MapActivity {
 MapView mapView; 
 MapController mc;
 GeoPoint p;
 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;
        }
    } 

 public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mapView = (MapView) findViewById(R.id.mapView);

        mapView.setBuiltInZoomControls(true);
        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();

    }
@Override
protected boolean isRouteDisplayed() {
    // TODO Auto-generated method stub
    return false;
}

1 个答案:

答案 0 :(得分:0)

尝试使用Markers of Google Maps Android API

中描述的GoogleMap.addMarker(markerOptions);

然后您可以使用setOnMarkerClickListener类的MapView,如下所示:

mapView.setOnMarkerClickListener(new OnMarkerClickListener() {
    @Override boolean onMarkerClick(Marker marker) {
        // marker clicked
    }
});