2013-06-18 8 views
9

Ich bin ein Anfänger von Android Developer. Ich entwickle die Kartenanwendung. Ich habe eine Funktion zum Suchen der Adresse, aber ich weiß nicht, wie man mit Google Map API V.2 nach Namen sucht. Bitte schlagen Sie mir die Lösung und einen Code vor, um das Problem zu lösen. Vielen Dank und Entschuldigung mit meinem Englisch.So suchen Sie nach Adresse auf Google Map Android

+0

http://stackoverflow.com/questions/5375654/how-to-implement-google-maps-search-by-address-in-android – Dimmerg

Antwort

5
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(); 
     } 
      } 
      }); 


    } 
+1

Danke Segi aber Wenn es möglich ist, Vermeide Geopoint, weil ich denke, dass Google Map V2 kein Geopoing hat. – shiteru

21
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(); 
} 
+0

Thx Haresh, es funktioniert. :) – shiteru