Consejo rápido para iPhone SDK Iniciar Maps In-App

La aplicación iPhone Maps es un programa revolucionario que combina el poder del GPS y Google Maps con una interfaz increíblemente fácil de usar. Este Consejo rápido le enseñará cómo comenzar a aprovechar esta funcionalidad al iniciar y configurar la aplicación Maps desde su proyecto SDK de iPhone..

Paso 1. Haga un viaje a París

El lanzamiento de la aplicación Maps dentro de su propia aplicación se puede hacer con las siguientes dos líneas de código:

 UIApplication * app = [UIApplication sharedApplication]; [aplicación openURL: [NSURL URLWithString: @ "http://maps.google.com/maps?q=Paris"]]; 

En la línea uno, solicitamos una referencia a la instancia de aplicación actualmente en ejecución de la clase UIApplication.

En la línea dos, le decimos a la aplicación que abra la URL suministrada, que en este caso es una URL de Google Maps válida. En lugar de abrir el mapa en Mobile Safari como cabría esperar, la instancia de la aplicación es lo suficientemente inteligente como para darse cuenta de que la aplicación Maps gestiona mejor esta solicitud y, en su lugar, la iniciará.

Nota: Desafortunadamente, el iPhone Simulator no abrirá la aplicación Mapas con el código anterior (el Simulador no tiene la aplicación Mapas). Deberá ejecutar este fragmento en un dispositivo iPhone OS real para realizar la prueba. Ejecutar este código en el iPhone Simulator lanzará Google Maps en Mobile Safari.

Voila! Bienvenido a Francia.

Paso 2. Configurar parámetros adicionales

Ahora que entendemos lo básico, profundicemos un poco en la funcionalidad que ofrece la API de Google Maps..

La URL que proporcionamos anteriormente tiene el formato de una publicación HTTP GET para la aplicación Google Maps. Envía el parámetro "q" establecido al valor de "París". La "q" significa consulta y es el tipo de solicitud más general que podemos realizar. Algunos otros parámetros comúnmente usados ​​incluyen:

  • ll =: Significa "latitud / longitud" y permite al usuario mucha mayor precisión al levantar mapas. Este parámetro se usa a menudo junto con el GPS a bordo para trazar una visualización del punto "Usted está aquí". El valor para este parámetro se debe proporcionar en formato decimal y debe estar separado por comas.
  • saddr =: La dirección de inicio o "fuente" que se usará al generar direcciones de manejo.
  • daddr =: La dirección de finalización o "destino" que se usará al generar direcciones de conducción.
  • t =: El tipo de mapa que se mostrará..
  • z =: El nivel de zoom del mapa que se mostrará..

Como puede haber adivinado, puede combinar múltiples parámetros en una solicitud GET. Esto se hace uniéndolos con el símbolo '&'.

Puede encontrar información más detallada sobre los parámetros admitidos (con ejemplos) en la documentación oficial de Apple Inc. aquí.

Paso 3. Envía a tu usuario a la Torre Eiffel

Concluyamos con un ejemplo de cómo combinar algunos de los parámetros personalizados anteriores y enviar a nuestros usuarios a una vista satelital de la Torre Eiffel.

La Torre Eiffel está ubicada en Latitud 48 ° 51 '32 ”Norte, Longitud 002 ° 17' 45” Este. Sin embargo, esta información nos es de poca utilidad en el formato actual. Necesitamos convertir el formato de Grado / Minuto / Segundo al formato decimal requerido por Google Maps ll = parámetro.

Hay muchas herramientas disponibles para hacer esto rápidamente en línea, pero cuando trabajo con Google Maps, me gusta usar un truco simple para generar un par de latitud / longitud a partir del mapa. Después de que la ubicación en la que está interesado se centre en la pantalla, inserte el siguiente fragmento de código (tomado de aquí) en la barra de direcciones de su navegador y presione intro:

 javascript: void (prompt (", gApplication.getMap (). getCenter ())); 

Nos quedamos con el formato decimal de latitud 48.85812229675187 y longitud 2.294490337371826.

Ahora, para enviar a nuestro usuario directamente a la Torre Eiffel, podríamos pegar lo siguiente:

 [aplicación openURL: [NSURL URLWithString: @ "http://maps.google.com/maps?ll=48.85812229675187,2.294490337371826"]]; 

De forma predeterminada, esto se iniciará con el tipo de mapa gráfico. Esto no es tan impresionante como ver la realidad, así que cambiemos el tipo de mapa a satélite agregando '& t = k' a nuestra cadena de consulta:

 [aplicación openURL: [NSURL URLWithString: @ "http://maps.google.com/maps?ll=48.85812229675187,2.294490337371826&t=k"]]; 

Esto funciona, pero nuestra vista desde arriba está un poco demasiado cerca. Salgamos un poco al establecer el nivel de zoom del mapa con '& z = 19':

 [aplicación openURL: [NSURL URLWithString: @ "http://maps.google.com/maps?ll=48.85812229675187,2.294490337371826&t=k&z=19"]]; 

Perfecto. La Torre Eiffel en la palma de nuestra mano.