Haciendo un menú Mapa de Android para cambiar el tipo de mapa -- android campo con google-maps camp Relacionados El problema

Making an android map menu to change map type


7
vote

problema

Español

Tengo un mapa en mi aplicación de Android. Por defecto, muestra la vista satelital, pero lo he apagado para mostrar solo la vista de mapas de carreteras. Sin embargo, me pregunto cómo construiría un menú, así que cuando el usuario presionara el botón MENÚ, mostrara una sección en la parte inferior con 'Mapa de satélite'. (Estaré agregando otros artículos al menú en el futuro)

Gracias a cualquiera que pueda ayudar con esto

Original en ingles

I have a map in my android app. By default it shows the satellite view, but I have turned it off to only show the road maps view. However, I am wondering how I would construct a menu so when the user pressed the menu button, it would display a section at the bottom with 'toggle satellite map'. (I will be adding other items to the menu in the future)

THanks to anyone who can help with this

     

Lista de respuestas

25
 
vote

Esta es mi implementación que funciona bien con Googlemaps API V2. Muestra un diálogo con cuatro botones de radio desde los que puede seleccionar un tipo de mapa. El tipo de mapa actualmente seleccionado también está seleccionado.

Android AlertDialog para seleccionar Googlemaps MapType

Este código preferiblemente entra en su actividad que posee el mapa. Simplemente asegúrese de que su mapa se inicie y se muestre correctamente antes de llamar a ShowMaptyPeselectDIALOG (). También recomiendo usar cadenas de recursos para las etiquetas.

  private GoogleMap mMap;  ...  private static final CharSequence[] MAP_TYPE_ITEMS =         {"Road Map", "Hybrid", "Satellite", "Terrain"};  private void showMapTypeSelectorDialog() {     // Prepare the dialog by setting up a Builder.     final String fDialogTitle = "Select Map Type";     AlertDialog.Builder builder = new AlertDialog.Builder(this);     builder.setTitle(fDialogTitle);      // Find the current map type to pre-check the item representing the current state.     int checkItem = mMap.getMapType() - 1;      // Add an OnClickListener to the dialog, so that the selection will be handled.     builder.setSingleChoiceItems(             MAP_TYPE_ITEMS,             checkItem,             new DialogInterface.OnClickListener() {                  public void onClick(DialogInterface dialog, int item) {                     // Locally create a finalised object.                      // Perform an action depending on which item was selected.                     switch (item) {                         case 1:                             mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);                             break;                         case 2:                             mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);                             break;                         case 3:                             mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);                             break;                         default:                             mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);                     }                     dialog.dismiss();                 }             }     );      // Build the dialog and show it.     AlertDialog fMapTypeDialog = builder.create();     fMapTypeDialog.setCanceledOnTouchOutside(true);     fMapTypeDialog.show(); }   
 

This is my implementation that works just fine with GoogleMaps API v2. It shows a dialog with four radio buttons from which you can select a map type. The currently selected map type is also already selected.

Android AlertDialog to select GoogleMaps MapType

This code preferably goes into your activity that holds the map. Just make sure your map is initiated and displays correctly before you call showMapTypeSelectorDialog(). I also recommend using Resource Strings for the labels.

private GoogleMap mMap;  ...  private static final CharSequence[] MAP_TYPE_ITEMS =         {"Road Map", "Hybrid", "Satellite", "Terrain"};  private void showMapTypeSelectorDialog() {     // Prepare the dialog by setting up a Builder.     final String fDialogTitle = "Select Map Type";     AlertDialog.Builder builder = new AlertDialog.Builder(this);     builder.setTitle(fDialogTitle);      // Find the current map type to pre-check the item representing the current state.     int checkItem = mMap.getMapType() - 1;      // Add an OnClickListener to the dialog, so that the selection will be handled.     builder.setSingleChoiceItems(             MAP_TYPE_ITEMS,             checkItem,             new DialogInterface.OnClickListener() {                  public void onClick(DialogInterface dialog, int item) {                     // Locally create a finalised object.                      // Perform an action depending on which item was selected.                     switch (item) {                         case 1:                             mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);                             break;                         case 2:                             mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);                             break;                         case 3:                             mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);                             break;                         default:                             mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);                     }                     dialog.dismiss();                 }             }     );      // Build the dialog and show it.     AlertDialog fMapTypeDialog = builder.create();     fMapTypeDialog.setCanceledOnTouchOutside(true);     fMapTypeDialog.show(); } 
 
 
0
 
vote

Solo agregue esto a su actividad:

    @Override   public boolean onCreateOptionsMenu(Menu menu) {     MenuInflater inflater = getMenuInflater();     inflater.inflate(R.menu.menu_items, menu);         return true;   }    @Override   public boolean onOptionsItemSelected(MenuItem item) {      switch (item.getItemId()) {        case R.id.item1 :         //do what you like        default :          return super.onOptionsItemSelected(item);      }   }   

Esto debe estar en un archivo XML separado (Tal vez /res/menu/menu_items.xml)

  <menu xmlns:android="http://schemas.android.com/apk/res/android">     <item android:id="@+id/item1"           android:icon="@android:drawable/ic_menu_help"           android:title="Help" />     <item android:id="@+id/item2"           android:icon="@android:drawable/ic_menu_manage"           android:title="Settings" /> </menu>   
 

Just add this to your Activity:

  @Override   public boolean onCreateOptionsMenu(Menu menu) {     MenuInflater inflater = getMenuInflater();     inflater.inflate(R.menu.menu_items, menu);         return true;   }    @Override   public boolean onOptionsItemSelected(MenuItem item) {      switch (item.getItemId()) {        case R.id.item1 :         //do what you like        default :          return super.onOptionsItemSelected(item);      }   } 

This should be in a separate xml file (maybe /res/menu/menu_items.xml)

<menu xmlns:android="http://schemas.android.com/apk/res/android">     <item android:id="@+id/item1"           android:icon="@android:drawable/ic_menu_help"           android:title="Help" />     <item android:id="@+id/item2"           android:icon="@android:drawable/ic_menu_manage"           android:title="Settings" /> </menu> 
 
 
0
 
vote

Construir su menú / botón / pestaña / su elección y en el escoge de eventos DO: mapView.setSatellite (false); Esto transformará el satélite en el mapa de ruta. Saludos.

 

Construct your menu/button/tab/your-choice and in the event listener do: mapView.setSatellite (false); this will transform the satellite into road map. Cheers.

 
 

Relacionados problema

26  Imagen de Google Maps?  ( Google maps image ) 
¿Hay alguna manera de capturar la imagen de un mapa de Google? No puedo usar el mapa estático porque tengo mis propias polilíneas en el mapa y las quiero en l...

2  Google Maps y Google Earth Solicitud  ( Google maps and google earth application ) 
Quiero desarrollar una solicitud para encontrar el valor de una propiedad basada en algunas constantes (como la distancia desde la orilla, el ancho de la carr...

2  Interacción GTK con Google Maps  ( Gtk interaction with google maps ) 
Estamos tratando de hacer una aplicación GUI en C usando GTK que usaría la API de Google Maps para descargar un mapa y encontrar la ruta más corta entre la fu...

24  Superposición de índice Z en Google Maps versión 3  ( Z index overlay in google maps version 3 ) 
Estoy tratando de obtener una superposición en Google Maps API V3 para aparecer sobre todos los marcadores. Pero parece que la API de Google siempre puso mi s...

0  Google Maps API Flex: manejar las dos clics dobles e individuales?  ( Google maps flex api handle both double and single clicks ) 
¿Cómo se le dice a un solo clic de ratón desde un doble clic? mi única clic oyente parece estar atrapando a todos los dobles clics, así: tz localizador ...

11  API de Google Maps - JavaScript de carga lenta  ( Google maps api slow loading javascript ) 
Estoy usando la API de Google Maps para mostrar un mapa en una página determinada. El problema es que el archivo http://maps.google.com/maps?file=api..... ...

1  Google Maps en Flex Componente  ( Google maps in flex component ) 
Estoy incorporando la API Flash de Google Maps en Flex y se ejecuta bien localmente con la marca de agua, etc. Cuando la subo al servidor (Flex.MyDomain.com),...

3  iPhone mkmapview anotaciones observadores seleccionables una vez  ( Iphone mkmapview annotations observers selectable once ) 
Tengo diferentes anotaciones de mapas personalizadas en mi mkmapview, y al crear la vista personalizada, agrego un observador y deshabilita la ventana emergen...

3  ¿Qué campos KML son compatibles con la aplicación nativa de Google Maps en el iPhone?  ( What kml fields are supported in the native google maps application on the iphon ) 
He estado haciendo algunas investigaciones sobre el uso de mapas en las aplicaciones de iPhone y parece que la mayoría de mis necesidades se pueden satisfacer...

25  Mapa Enrutamiento, A LA Google Maps?  ( Map routing a la google maps ) 
Siempre he estado intrigado por el enrutamiento del mapa, ¡pero nunca he encontrado buenos tutoriales de nivel de introducción (o incluso avanzados!) En él. ¿...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos