Buscar..


Observaciones

Si va a ejecutar su proyecto en otra computadora, tendrá que generar una nueva clave API para él, porque las huellas dactilares SHA-1 no coincidirán con las diferentes máquinas de compilación.

Puede explorar el proyecto, que se describe en el ejemplo Agregar un mapa en Xamarin.Forms aquí

Añadiendo un mapa en Xamarin.Forms (Xamarin Studio)

Simplemente puede usar las API de mapas nativos en cada plataforma con Xamarin Forms. Todo lo que necesita es descargar el paquete Xamarin.Forms.Maps de nuget e instalarlo en cada proyecto (incluido el proyecto PCL).

Inicialización de mapas

En primer lugar, debe agregar este código a sus proyectos específicos de la plataforma. Para hacer esto, debe agregar la Xamarin.FormsMaps.Init método Xamarin.FormsMaps.Init , como en los ejemplos a continuación.


proyecto iOS

Archivo AppDelegate.cs

[Register("AppDelegate")]
public partial class AppDelegate : Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
    public override bool FinishedLaunching(UIApplication app, NSDictionary options)
    {
        Xamarin.Forms.Forms.Init();
        Xamarin.FormsMaps.Init();

        LoadApplication(new App());

        return base.FinishedLaunching(app, options);
    }
}

Proyecto de android

Archivo MainActivity.cs

[Activity(Label = "MapExample.Droid", Icon = "@drawable/icon", Theme = "@style/MyTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
    protected override void OnCreate(Bundle bundle)
    {
        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;

        base.OnCreate(bundle);

        Xamarin.Forms.Forms.Init(this, bundle);
        Xamarin.FormsMaps.Init(this, bundle);

        LoadApplication(new App());
    }
}

Configuración de la plataforma

Se requieren pasos de configuración adicionales en algunas plataformas antes de que se muestre el mapa.


proyecto iOS

En el proyecto iOS, solo tiene que agregar 2 entradas a su archivo Info.plist :

  • NSLocationWhenInUseUsageDescription cadena con valor We are using your location
  • NSLocationAlwaysUsageDescription cadena con valor Can we use your location

Archivo Info.plist


Proyecto de android

Para usar Google Maps, debe generar una clave API y agregarla a su proyecto. Siga las instrucciones a continuación para obtener esta clave:

  1. (Opcional) Encuentre la ubicación de la herramienta keytool (la /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands predeterminada es /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands )

  2. (Opcional) Abra el terminal y vaya a la ubicación de su herramienta de claves:

    cd /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands

  3. Ejecute el siguiente comando keytool:

    keytool -list -v -keystore "/Users/[USERNAME]/.local/share/Xamarin/Mono for Android/debug.keystore" -alias androiddebugkey -storepass android -keypass android

    Donde [NOMBRE DE USUARIO] es, obviamente, su carpeta de usuario actual. Debería obtener algo similar a esto en la salida:

    Alias name: androiddebugkey
    Creation date: Jun 30, 2016
    Entry type: PrivateKeyEntry
    Certificate chain length: 1
    Certificate[1]:
    Owner: CN=Android Debug, O=Android, C=US
    Issuer: CN=Android Debug, O=Android, C=US
    Serial number: 4b5ac934
    Valid from: Thu Jun 30 10:22:00 EEST 2016 until: Sat Jun 23 10:22:00 EEST 2046
    Certificate fingerprints:
             MD5:  4E:49:A7:14:99:D6:AB:9F:AA:C7:07:E2:6A:1A:1D:CA
             SHA1: 57:A1:E5:23:CE:49:2F:17:8D:8A:EA:87:65:44:C1:DD:1C:DA:51:95
             SHA256: 70:E1:F3:5B:95:69:36:4A:82:A9:62:F3:67:B6:73:A4:DD:92:95:51:44:E3:4C:3D:9E:ED:99:03:09:9F:90:3F
             Signature algorithm name: SHA256withRSA
             Version: 3
    
  4. Todo lo que necesitamos en esta salida es la huella digital del certificado SHA1. En nuestro caso es igual a esto:

    57:A1:E5:23:CE:49:2F:17:8D:8A:EA:87:65:44:C1:DD:1C:DA:51:95
    

    Copia o guarda en alguna parte esta clave. Lo necesitaremos más adelante.

  5. Vaya a la Consola de desarrolladores de Google , en nuestro caso debemos agregar la API de Android de Google Maps , así que elíjala introduzca la descripción de la imagen aquí

  6. Google le pedirá que cree un proyecto para habilitar las API, siga este consejo y cree el proyecto: Sugerencia para crear un proyecto. Página para crear un proyecto.

  7. Habilite la API de Google Maps para su proyecto: Habilitar API Después de habilitar la API, debe crear credenciales para su aplicación. Siga este consejo: Ir a Credenciales

  8. En la página siguiente, elija la plataforma Android, toque "¿Qué credenciales necesito?" botón, cree un nombre para su clave API, toque "Agregar nombre de paquete y huella digital", ingrese su nombre de paquete y su huella digital SHA1 en el paso 4 y finalmente cree una clave API: Crea tu api Para encontrar el nombre de su paquete en Xamarin Studio, vaya a su solución .Droid -> AndroidManifest.xml: Nombre del paquete de Android

  9. Después de la creación, copie la nueva clave API (no olvide presionar el botón "Listo" después) y péguela en su archivo AndroidManifest.xml : Finalizar clave de API Archivo AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:versionCode="1"
        android:versionName="1.0"
        package="documentation.mapexample">
        <uses-sdk
            android:minSdkVersion="15" />
        <application
            android:label="MapExample">
            <meta-data
                android:name="com.google.android.geo.API_KEY"
                android:value="AIzaSyBAg8X-t4pOIDDp3q5Ph45jKUIVjo_RnxU" />
            <meta-data
                android:name="com.google.android.gms.version"
                android:value="@integer/google_play_services_version" />
        </application>
    </manifest>        
    

    También necesitarás habilitar algunos permisos en tu manifiesto para habilitar algunas características adicionales:

    • Acceso a la ubicación aproximada
    • Acceso a Ubicación Fina
    • Ubicación de acceso Comandos adicionales
    • Acceso a la ubicación simulada
    • Estado de la red de acceso
    • Acceso Wifi Estado
    • Internet

    Permisos de Android Aunque, los dos últimos permisos son necesarios para descargar datos de Maps. Lea acerca de los permisos de Android para aprender más. Eso es todos los pasos para la configuración de Android.

    Nota : si desea ejecutar su aplicación en el simulador de Android, debe instalar los servicios de Google Play. Siga este tutorial para instalar Play Services en el reproductor de Android Xamarin. Si no puede encontrar la actualización de Google Play Services después de la instalación de Play Store, puede actualizarla directamente desde su aplicación, donde depende de los servicios de mapas.


Añadiendo un mapa

Agregar una vista de mapa a su proyecto multiplataforma es bastante simple. Aquí hay un ejemplo de cómo puede hacerlo (estoy usando el proyecto PCL sin XAML).


Proyecto PCL

Archivo MapExample.cs

public class App : Application
{
    public App()
    {
        var map = new Map();
        map.IsShowingUser = true;

        var rootPage = new ContentPage();
        rootPage.Content = map;

        MainPage = rootPage;
    }
}

Eso es todo. Ahora, si ejecuta su aplicación en iOS o Android, le mostrará la vista del mapa: Mapas de Xamarin.Forms



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow