A continuación encontrarás traducido al Castellano el artículo escrito por Paul Lefebvre y publicado originalmente en el Blog oficial de Xojo.
En Xojo 2025r2 se ha añadido un nuevo control para Android: MobileMapViewer. El control utiliza el SDK Google Maps para mostrar los datos de mapas en tus apps.
Antes de que puedas utilizar MobileMapViewer tendrás que contar con una cuenta Google Maps configurada para que puedas generar una clave API. Las instrucciones para ello están disponibles en Google: Google Maps Platform, Get Google Maps API Key.
Google Maps no es gratuito. Si bien proporciona algo de uso gratuito para probar tus apps, tu cuenta comenzará a facturarse basándose para ello en el uso una vez que se haya consumido el uso o créditos gratuitos proporcionados para la prueba de la app.
Cuando tengas la clave API has de añadirla a tu proyecto Xojo usando una nueva propiedad disponible en el objeto App. Selecciona dicho objeto en el Navegador y, ya en el Panel Inspector, introduce la clave en el campo Google Maps API Key. Ten en cuenta que la clave no se guardará en los proyectos de texto y que se guardará como parte del archivo de estado UI que es local a tu equipo de desarrollo. Esto evita que la clave pueda enviarse por error a un repositorio de código fuente.
Con la configuración lista, ya puedes usar el control. Arrastra el control MobileMapViewer desde la Librería y suéltalo sobre la pantalla en el Editor de Diseño. Cuando ejecutes el proyecto verás un mapa interactivo en el que puedes girar, ampliar y moverte por él como desees.
Este código muestra Fenway Park en Boston:
FenwayLocation = New MapLocation("Fenway Park, Boston, MA USA") FenwayLocation.Title = "Fenway Park" MapViewer1.ZoomRadius = 5 MapViewer1.GoToLocation(FenwayLocation) // Central el mapa en el radio indicado en km MapViewer1.AddLocation(FenwayLocation) // Añade un marcador
La API MobileMapViewer se corresponde con lo que ya encontrabas para su uso en iOS. También puedes usar la clase MapLocation para registrar ubicaciones concretas. Aunque la API concuerda en líneas generales con la utilizada en iOS, hay una excepción: MapLocation.PointsOfInterest() aun no se encuentra implementado. Implementarlo requiere del uso de otra clave API del SDK Google (la API Places) y estamos revisándolo para una futura versión. También podríamos considerar añadir motores de mapas alternativos.