39 votes

Comment mettre en œuvre la recherche google maps par adresse dans Android?

Comment mettre en œuvre la recherche google maps par adresse dans Android?

38voto

Chirag Raval Points 25721

Pour cela, vous devez créer une classe de superposition de carte dans l'activité de carte.

Exemple

 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;
    }
} 
 

Où veuillez changer R.Drawable.pink. Mettez votre tout dessinable.

Veuillez maintenant écrire le code ci-dessous dans votre recherche sur l'événement Click.

Exemple

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

Où txtSearch est un edittext et le contrôleur est un contrôleur de carte.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X