BubblesMap

Testeado en versión la 1.0

BubblesMap es un ejemplo para poner bocadillos dentro de un mapa haciendo uso de un Overlay.

El ejemplo cargará varias localizaciones y al pulsar sobre una de ellas aparecerá un bocadillo con un texto relacionado con él.

Capturas del programa


Pantalla BubblesMap 1

Como funciona

El programa tiene un paquete llamado "view" que contiene 4 ficheros .java con la vista del mapa, que extiende de MapView y un manager para trabajar con los puntos dentro del mapa. Nosotros lo que haremos en cargar la vista dentro de nuestro MapActivity y luego usar MapLocationsManager.

Este sería el código del método onCreate de nuestro MapActivity.

  1. super.onCreate(savedInstanceState);
  2. requestWindowFeature(Window.FEATURE_NO_TITLE);
  3. FrameLayout frame = new FrameLayout(this);
  4. mMapView = new MapLocationViewer(this, "KEY");
  5. frame.addView(mMapView);
  6. setContentView(frame);
  7. mMapController = mMapView.getController();
  8. mMapView.setTraffic(true);
  9. mMapView.setSatellite(false);
  10. mMapController.setZoom(15);
  11. View zoomControls = mMapView.getZoomControls();
  12. FrameLayout.LayoutParams p =
  13. new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
  14. LayoutParams.WRAP_CONTENT,
  15. Gravity.BOTTOM + Gravity.CENTER_HORIZONTAL);
  16. frame.addView(zoomControls, p);
  17. GeoPoint point = new GeoPoint((int)(36.506004*1E6), (int)(-6.276686*1E6));
  18. mMapView.getManager().addMapLocation(new MapLocation(mMapView,
  19. "Prueba para poner un texto en un mapa",
  20. point, MapLocation.TYPE_BUBBLE));
  21. GeoPoint point2 = new GeoPoint((int)(36.516810*1E6), (int)(-6.280489*1E6));
  22. mMapView.getManager().addMapLocation(new MapLocation(mMapView,
  23. "Esto es poniendo otro texto",
  24. point2, MapLocation.TYPE_BUBBLE_OFF));
  25. GeoPoint point3 = new GeoPoint((int)(36.523363*1E6), (int)(-6.284609*1E6));
  26. mMapView.getManager().addMapLocation(new MapLocation(mMapView,
  27. "Y este sería un tercer texto",
  28. point3, MapLocation.TYPE_BUBBLE_OFF));
  29. mMapController.setCenter(point);

Lo primero que tenemos que hacer para que funcionen los mapas dentro de nuestro programa es poner nuestro KEY para GoogleMaps. Puedes ver como hacerlo aquí.

El programa lo primero que hace es crear un FrameLayout y meter dentro nuestro MapLocationViewer (que hereda de MapView). Luego agregamos puntos en el mapa haciendo uso de mMapView.getManager().addMapLocation al cual se le pasan 4 parámetros: la vista del mapa, el texto, el punto (GeoPoint) y el dibujo que queremos aparezca en la localización. En la clase MapLocation, podemos crear diferentes tipos de dibujos, creando nuevas variables estáticas y modificando el método setType.

Descargar

Descargar Proyecto para Eclipse

Descarga el proyecto e impórtalo en Eclipse.