Red de conocimiento informático - Computadora portátil - Cómo utilizar Google Maps en el desarrollo de Android

Cómo utilizar Google Maps en el desarrollo de Android

Desde que Google ingresó a China en 2006, la velocidad de desarrollo en los campos de mapas y dispositivos móviles básicamente ha aumentado varias veces cada año. En las últimas aplicaciones relacionadas con el desarrollo de la plataforma Android, si podemos tener un conocimiento profundo de Google Maps, será de gran ayuda para nuestro desarrollo de Android. El siguiente es mi resumen de mi comprensión de Google Maps en el desarrollo de Android.

1. Primero, obtenga la ubicación del almacén de claves de depuración:

Open Eclipse---gt; Windows---gt;

Ver la ubicación predeterminada del almacén de claves de depuración, la mía es C:\Documents and Settings\sdhbk\.android\debug.keystore

2.

D :\ android-sdk-windows-1.5_r1\toolsgt - list -alias androiddebugkey -keysto

re "C:\Documents and Settings\sdhbk\.android\debug.keystore" -storepass android< /p; >

-keypass android

androiddebugkey, 2009-7-25, PrivateKeyEntry,

Huella digital de autenticación (MD5):

3.

p>

Abrir

Rellene su huella digital de verificación (MD5) para obtener la apiKey, el resultado se mostrará de la siguiente manera:

Gracias por registrar Android ¡Clave API de mapas! android.maps.MapView (Vista de mapa)

Puedes ver el mapa en la vista de mapa. MapView

android: id="@ id/mapview"

android: layout_width="fill_parent"

android: layout_height="fill_ parent"

android: apiKey="0jOkQ80oD1JL9C6HAja99uGXCRiS2CGjKO_bc_g" /gt;

o

lt; ver android:id="@ id/mv"

="com.google.android.maps.MapView"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_weight ="1"

android: apiKey="0jOkQ80oD1JL9C6HAja99uGXCRiS2CGjKO_bc_g"

/gt;

Los complementos de Android preinstalados en 5.sdk1.5 están en el SDK Se proporcionan API adicionales. El complemento preinstalado de Android sdk1.5 proporciona una biblioteca de extensiones de mapas com.google.android.maps con la que puede agregar potentes funciones de mapas a sus aplicaciones de Android.

La biblioteca está ubicada en Your-SDK_DIR\add-ons\google_apis-3\libs.

Asegúrese de que todos los permisos apropiados estén configurados en manifest.xml, por ejemplo:

lt;uses-permission android:name="android .permission.ACCESS_COARSE_LOCATION" /gt; /p>

lt; p>

lt; uses-permission android: name="android.permission.INTERNET"

Agrega los permisos que se utilizarán y la biblioteca de mapas. usarse en manifest.xml:

p>

lt; manifiesto xmlns: android=""

package="com.example.package.name"gt; p>

...

lt; aplicación android: nombre="MiAplicación" gt;

lt; biblioteca de usos android: nombre="com.google.android. mapas" /gt;

.. .

lt;/applicationgt;

...

lt;/manifestgt;

Cabe señalar que esta biblioteca no es parte del SDK estándar de Android; también puede descargar la biblioteca desde aquí e insertarla en su SDK.

Análisis de la biblioteca de mapas

La biblioteca de mapas proporciona más de una docena de clases a las que puede consultar aquí, incluidas Mapview, MapController, MapActivity, etc.

Mapview es una vista utilizada para mostrar mapas. También se deriva de android.view.ViewGroup.

El mapa se puede mostrar en diferentes formas, como vista de calle, modo satélite, etc. Para métodos específicos, consulte:

setSatellite(Boolean), setTraffic(Boolean) , setTraffic(Booleano), setTraffic (Booleano), setTraffic(Booleano), setTraffic(Booleano), setTraffic(Booleano), etc.

MapView solo puede ser creado por MapActivity porque mapview necesita conectarse a la red o al sistema de archivos a través de subprocesos en segundo plano, y estos subprocesos deben ser administrados por mapActivity. Esto se debe a que mapview necesita conectarse a la red o al sistema de archivos a través de subprocesos en segundo plano, y estos subprocesos deben ser administrados por mapActivity.

Es importante tener en cuenta que en Android 1.5, el zoom del mapa utiliza un mecanismo incorporado. Puede configurar si se muestra el control de zoom en el mapa a través de setBuiltInZoomControls (booleano).

MapActivity es una clase abstracta y cualquier actividad que quiera mostrar un MapView debe derivar de MapActivity. En onCreate() de su clase derivada, se crea una instancia de MapView, a la que puede acceder a través del constructor MapView (y luego agregarla a la vista de diseño usando ViewGroup.addView(View)) o el XML de diseño.

Análisis de muestra

Finalmente, como es habitual, utilizamos un pequeño programa para demostrar el desarrollo de la función de mapas en Android. La función principal es realizar el zoom del mapa, agregar un menú para que puedas seleccionar manualmente el modo de visualización del mapa, etc.

Paso 1: cree un nuevo proyecto de Android. Tenga en cuenta que el objetivo de compilación que se seleccionará aquí es "API de Google".

Paso 2: modifique el archivo menifest:

lt; xml versión="1.0" codificación="utf -8" gt;

lt; manifiesto xmlns: android=""

paquete="com.map.prac "

android: versionCode="1"

android: versionName="" 1.0"gt

lt; .permission.ACCESS_COARSE_LOCATION" /gt;

lt; usa-permiso android.INTERNET" /gt

lt;application android:icon="@drawable/icon" android:label; ="@string/app_name"gt;

lt; utiliza-biblioteca android: nombre="com.google.android.maps" /gt

lt; ="MapViewPrac2"

android:label="@string/app_name"gt

lt;intent-filtergt

lt;action android:name; ="android.intent.action.MAIN" /gt;

lt; categoría android: nombre="android.intent.category.LAUNCHER"

lt;/intent; -filtergt;

lt;/actividadgt;

lt;/applicationgt;

lt;usas-sdk android:minSdkVersion="3" /gt; /p>

lt; /manifestgt;

Paso 3: Modificar el archivo de diseño, main.xml

lt xml version="1.0" encoding="utf-8 " gt;

lt; LinearLayout xmlns: android=""

android: id="@ id/main"

android: layout_ width="fill_parent "

android: layout_height="fill_parent"gt;

lt; com.google.android.maps.MapView

android: id="@ id / mapa "

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:

enable="true"

android:clickable="true"

android:apiKey=" "

/gt; ;/LinearLayoutgt;

Aquí, debe cambiar la clave de API en la clave de API por la clave de API de su propia aplicación.

Paso 4: Modificar el código:

paquete com.map.prac

importar com.google.android.maps.GeoPoint

;

importar com.google.android.maps.MapActivity; clase pública MapViewPrac2 extiende MapActivity {

private final String TAG = "MapPrac"

private MapView mapView = null; /p>

p>

private MapController mc;

//Elemento del menú

final private int menuMode = Menu.FIRST

final; private int menuSalir = Menú. PRIMERO 1;

final privado int menuCommandList = Menú. PRIMERO 2;

privado int elegirItem = 0; cuando se crea la actividad por primera vez.

@Override

public void onCreate(Bundle saveInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R. diseño); .main);

mapView = (MapView)findViewById(R.id.map);

mc = mapView.getController(); (verdadero); // //

mapView.setSatellite(false);

mapView.setStreetView(true)setStreetView(true); gp = nuevo GeoPoint((int)(39.269259 * 1000000), (int) (115.255762 * 1000000)); //yixian

GeoPoint gp = nuevo GeoPoint((int)(39.95 * 1000000), ( int)(116.mc.setZoom(12);

mc.setCenter(gp);

//para mostrar el control de zoom en MapView

mapView.

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

// TODO genera automáticamente códigos auxiliares de métodos

Registro. i(TAG, "ingrese onKeyDown");

return super.onKeyDown(keyCode, evento

}

@Override

public boolean onCreateOptionsMenu(Menú menú) {

menu.add(0, menuMode, 0, "Modo mapa");

menu.add(0, menuCommand, 0, "); Modo mapa")menu.add(0, menuCommandList, 1, "Lista de comandos");

menu.add(0, menuExit, 2, "Salir");

return super.onCreateOptionsMenu(menú);

}

@Override

public boolean onMenuItemSelected(int featureId, elemento MenuItem) {

/ / TODO genera automáticamente resguardos de métodos

switch(item.getItemId())

{

case menuMode:

Diálogo dMode = nuevo AlertDialog.Builder

(esto)

//.setIcon(R.drawable.alert_dialog_icon)

.setTitle( R.string.alert_dialog_single_choice)

.setSingleChoiceItems(R.array .select_dialog_items2, ChooseItem, nueva DialogInterface.

.setSingleChoiceItems(R.array.select_dialog_items2, nueva DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int whichButton) {

Log.i(TAG, "elegir el botón es " whichButton);

elegirItem = WhichButton

/* El usuario hizo clic en un botón de opción para hacer algunas cosas * /

}

}.

})

.setPositiveButton(R.string. alert_dialog_ok, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int whichButton) {

/* El usuario hizo clic en Sí, así que haga algunas cosas */

Log.i(TAG, " item = " elegirItem);

switch(chooseItem)

{

caso 0:

mapView.setSatellite(false);

ruptura;

caso 1:

mapView.setSatellite(true);

ruptura

; :

mapView.setTraffic(true);

descanso

caso 3:

mapView.setStreetView(true); p>

romper; p>

romper

Predeterminado:

romper

}

}

})

.setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() {

public void onClick (diálogo de DialogInterface, int whichButton) {

/* El usuario hizo clic en No, así que haz algunas cosas */

}

}.

})

.create();

dMode.show()

descanso

case menuCommandList:

//crea el diálogo

Dialog d = new AlertDialog.Builder(this)

.setTitle(R. string.select_dialog)

.setItems(R.array.select_dialog_items, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

/* El usuario hizo clic para hacer algunas cosas */

String[] items = getResources().getStringArray(R.array. select_dialog_items

/*new AlertDialog.Builder(this)

.setMessage("Usted seleccionó: " cuál " , " elementos[cuáles])

.show() */

.show().* /

Log.i(TAG, "Seleccionó: " elementos[que]);

}

})

. create();

//muestra el diálogo

d.show();

break

case menuSalir:

p>

finalizar();

romper

Predeterminado:

romper

}

return super.onMenuItemSelected(featureId, item);

}

@Override

protected boolean isRouteDisplayed() {

// TODO genera automáticamente resguardos de métodos

return false

}

}

El uso de Google Maps debe ser aprobado por todos los dispositivos Android. desarrolladores. ¡Resúmelo en el desarrollo real!