How to implement google maps search by address in Android?

For that you need to create one map overlay class in map activity.

Example

class MapOverlay extends com.google.android.maps.Overlay
{
    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.pink);            
        canvas.drawBitmap(bmp, screenPts.x, screenPts.y-32, null);         
        return true;
    }
} 

Where please change R.drawable.pink . Put your any drawable.

Now please write below code in your search onClick event..

Example

List<Address> addresses = geoCoder.getFromLocationName(txtsearch.getText().toString(),5);

if(addresses.size() > 0) {
    p = new GeoPoint( (int) (addresses.get(0).getLatitude() * 1E6), 
        (int) (addresses.get(0).getLongitude() * 1E6));

    controller.animateTo(p);
    controller.setZoom(12);

    MapOverlay mapOverlay = new MapOverlay();
    List<Overlay> listOfOverlays = map.getOverlays();
    listOfOverlays.clear();
    listOfOverlays.add(mapOverlay);

    map.invalidate();
    txtsearch.setText("");
}
else {
    AlertDialog.Builder adb = new AlertDialog.Builder(GoogleMap.this);
    adb.setTitle("Google Map");
    adb.setMessage("Please Provide the Proper Place");
    adb.setPositiveButton("Close",null);
    adb.show();
}

Where txtsearch is a EditText and controller is a map controller ..

Leave a Comment