How to implement google maps search by address in Android?

前端 未结 1 1312
醉梦人生
醉梦人生 2020-11-29 19:23

How to implement google maps search by address in Android?

相关标签:
1条回答
  • 2020-11-29 19:42

    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 ..

    0 讨论(0)
提交回复
热议问题