Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Search Address by Name on Google Map Android

I am a beginner of Android Developer. I am developing the Map Application. I have a function of searching address but I do not know how to search address by name using Google Map API V.2. Please suggest me the solution and some code to solve this. Thank you very much and Sorry with my English.

like image 381
shiteru Avatar asked Jun 18 '13 04:06

shiteru


2 Answers

adderess = c.getString(c.getColumnIndex(SQLiteAdapter.KEY_CONTENT3));
// get address in string for used location for the map

/* get latitude and longitude from the adderress */

Geocoder geoCoder = new Geocoder(this, Locale.getDefault());
try
{
    List<Address> addresses = geoCoder.getFromLocationName(adderess, 5);
    if (addresses.size() > 0)
    {
        Double lat = (double) (addresses.get(0).getLatitude());
        Double lon = (double) (addresses.get(0).getLongitude());

        Log.d("lat-long", "" + lat + "......." + lon);
        final LatLng user = new LatLng(lat, lon);
        /*used marker for show the location */
        Marker hamburg = map.addMarker(new MarkerOptions()
            .position(user)
            .title(adderess)
            .icon(BitmapDescriptorFactory
            .fromResource(R.drawable.marker)));
        // Move the camera instantly to hamburg with a zoom of 15.
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(user, 15));

        // Zoom in, animating the camera.
        map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
    }
}
catch (IOException e)
{
    e.printStackTrace();
}
like image 56
haresh Avatar answered Oct 27 '22 14:10

haresh


protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_search_map);

        editText = (EditText) findViewById(R.id.editText1);
        mapView = (MapView) findViewById(R.id.mapView);
        btngo = (Button) findViewById(R.id.btnmapsites);

        btngo.setOnClickListener(new View.OnClickListener() {                             

        public void onClick(View arg0) {

             List<Address> addresses;
             try{
                  addresses = geoCoder.getFromLocationName(editText.getText().toString(),1);
                  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 = mapView.getOverlays(); 
                     listOfOverlays.clear();
                     listOfOverlays.add(mapOverlay);

                     mapView.invalidate();
                     editText.setText("");
                  }else{
                     AlertDialog.Builder adb = new AlertDialog.Builder(SearchMapActivity.this);
                     adb.setTitle("Google Map");
                     adb.setMessage("Please Provide the Proper Place");
                     adb.setPositiveButton("Close",null);
                     adb.show();
                  }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
            }
            });


    }
like image 31
Sagar Maiyad Avatar answered Oct 27 '22 15:10

Sagar Maiyad