简体   繁体   中英

Android set Listener for marker on google map

This is the overlay class I am using in Google Maps. I added two markers to it and want to add a Listener to these markers. Below is my overlay class:

protected class MyLocationOverlay extends com.google.android.maps.Overlay {

    @Override
    public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) {


        super.draw(canvas, mapView, shadow);
        // Converts lat/lng-Point to OUR coordinates on the screen.
        Point myScreenCoords = new Point();
        mapView.getProjection().toPixels(p, myScreenCoords);



        Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.passenger_map);

        canvas.drawBitmap(bmp, myScreenCoords.x, myScreenCoords.y, null);
        // canvas.drawText("I am here...", myScreenCoords.x, myScreenCoords.y, paint);

        mapView.getProjection().toPixels(p1, myScreenCoords);
        Bitmap bmp1 = BitmapFactory.decodeResource(getResources(), R.drawable.driver_map);

        canvas.drawBitmap(bmp1, myScreenCoords.x, myScreenCoords.y, null);
        // canvas.drawText(" Driver : I am here...", myScreenCoords.x, myScreenCoords.y, paint);
        return true;    
    }

you need to use the ItemizedOverlay class for that to tap on the Marker. In that you need to override

onTap() or onTouch()

which is used for marker as well as for map

public boolean onTap (final GeoPoint p, final MapView mapView){
boolean tapped = super.onTap(p, mapView);
if (tapped){            
    //do what you want to do when you hit an item           
}           
else{
    //do what you want to do when you DONT hit an item
    }                   
return true;

}

//You must have this method, even if it doesn't visibly do anything

@Override protected boolean onTap(int index) { return true; }

here are the links

http://developer.android.com/guide/tutorials/views/hello-mapview.html

OnTap() event on map is not fired

Android: ItemizedOverlay onTouchEvent and onTap overlapping

Show popup above map marker in MapView

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM