@Override public boolean onOptionsItemSelected(MenuItem item) { // Este metodo realiza un switch a las opciones del menu. (Vista satelital, vista de mapa, // heatmap y ruta). switch (item.getItemId()) { case R.id.opcionMap: mapview.setSatellite(false); return true; case R.id.opcionSatellite: mapview.setSatellite(true); return true; case R.id.opcionRuta: trazarRuta(mapview); return true; case R.id.opcionHeatMap: iniciarHeatMap(mapview); return true; default: return super.onOptionsItemSelected(item); } }
// Este metodo es llamado si se presiona el boton Heatmap del menu. public void trazarHeatMap() { // Se instancia un objeto de la clase HeatMapOverlay, propia de la biblioteca heatmap.jar this.overlayHeatmap = new HeatMapOverlay(20000, mapview); mapview.getOverlays().add(overlayHeatmap); // Si se mueve el mapa, se hace zoom, etc., los puntos del heatmap y su forma deben refrescarse. mapview.addPanChangeListener( new PanChangeListener() { @Override public void onPan(GeoPoint anterior, GeoPoint actual) { // Se toman los puntos de la base de datos relativos a todos los usuarios, para ser // pintados en un Overlay sobre el mapa. List<HeatPoint> puntos = auxiliarBD.cargarPuntosDeCalor( mapview.getBounds(), horaInicial, horaFinal, fecha, distanciaSeparacion); if (puntos.size() > 0) { // Si hay mas de un punto, se llama al metodo update de la biblioteca heatmap.jar overlayHeatmap.update(puntos); } } }); }
// Este metodo es llamado si se presiona el boton ruta del menu. public void trazarRuta(SimpleMapView map) { // Se limpia el mapa y abre una ventana para seleccionar parametros y posteriormente se crea una // instancia de la clase RutaOverlay. map.getOverlays().clear(); abrirVentanaDialogo(); }
public void iniciarHeatMap(SimpleMapView map) { // Se limpia primero el mapa y se abre la ventana de dialogo para establecer parametros de // filtrado. map.getOverlays().clear(); abrirDialogoHeatMap(); }