0:00
[MÚSICA] Hola
nuevamente, en el video anterior vimos
que para hacer una petición de una ruta, necesitamos configurar cierta información.
Veamos en este video cómo se hace esta configuración.
El objeto principal para hacer la configuración es un objeto de la clase
MKDirectionsRequest.
Este objeto contiene ciertas propiedades que se tienen que llenar
para que los servidores sepan que información nos deben devolver.
Dos propiedades muy importantes,
desde luego son el punto de inicio y el punto final.
El punto de inicio, se coloca en la propiedad Source,
el punto final se coloca en la propiedad Destination, y ambos tienen tienen que ser
objeto de la clase MKMapItem, tienen que ser de esa clase específicamente.
0:52
Otra información importante que le debemos enviar al servidor es
el tipo de transporte que requerimos, no es lo mismo que nos devuelva información
sobre cómo ir en una ruta manejando, a cómo ir caminando.
Entonces esto se logra con la propiedad llamada transportType.
Esta propiedad, puede tener 1 de 4 valores, Automobile, si vamos manejando,
Walking si vamos caminando, Transit si vamos en transporte público o
Any si utilizamos cualquiera de ellos, que nos devuelva el encuentre de ellos.
Hablemos un poco del objeto MKMapItem.
Recuerden que tanto el punto de inicio,
como el punto final deben ser de esta clase.
Hay muchas otras clases que proporcionan información similar a la que nos da
el MKMapItem.
Sin embargo, el objetivo de crear este nuevo objeto, de esta clase fue el de
encapsular toda la información necesaria para presentar un punto en el mapa.
Este es su objetivo.
Casi siempre se trabaja en el MKMapItem con un objeto de la clase MKPlacemark.
De hecho, la forma más fácil de generar un objeto MKMapItem,
es a partir de un objeto MKPlacemark.
Veremos en un momento más, cómo se hace.
Algunas propiedades importantes del objeto MKMapItem son, nombre, el nombre del
lugar que está representando, el teléfono si se refiere a un centro comercial,
o a una estación específica donde se da algún servicio.
El URL de la misma forma, si el lugar que está representando tiene URL,
pues se le puede colocar en esta propiedad.
Y desde luego, la parte más importante que es la localización.
Esta localización, que contiene las coordenadas del punto,
latitud y longitud normalmente tomadas del objeto MKPlacemark.
Además es muy común que para establecer una ruta, nosotros
necesitemos hacerlo tomando como punto de inicio el punto donde estamos actualmente.
Esto entonces obliga a convertir el punto del usuario, el punto donde está
el dispositivo actualmente, a un objeto de la clase MKMapItem.
Afortunadamente existe un método dentro de esta clase,
que nos convierte fácilmente la posición actual a una posición MKMapItem.
Y esto, el método se llama MapItemForCurrentLocation.
Este es el método, que vamos a utilizar.
Les va a servir mucho para su proyecto además.
3:26
En realidad los objetos MKMapItem, tienen una interacción muy directa con
la aplicación Maps que ustedes conocen, Maps de Apple, que ustedes conocen.
Lo que se hace normalmente, es que se generan ciertos puntos importantes,
se colocan en un arreglo, se lanza la aplicación
y los puntos aparecen indicados dentro del mapa, ya en la aplicación.
Nosotros no los vamos a utilizar por medio la aplicación Maps.
Los vamos a utilizar digamos a pie, es decir los vamos a configurar y los vamos
a hacer que se relacionen con nuestra clase MKMapView,
que contiene nuestra vista del mapa, así es como los trabajaremos.
Como les decía, cada objeto MKMapItem necesita ser creado,
y para crearse lo más fácil es hacerlo a partir de un objeto MKPlacemark.
Este objeto MKPlacemark contiene cierta información importante, también del punto,
como por ejemplo, las coordenadas, en la propiedad coordinate,
contiene la latitud y la longitud, las coordenadas del punto.
Esto es fundamental,
eso es necesario, para localizar un punto en el globo terráqueo.
4:39
Pero también contiene en otra propiedad que se llama Address,
esta propiedad puede contener, desde luego, la calle, la ciudad,
el estado, el código postal, el país, del punto que estamos localizando.
Para crear un objeto de la clase MKPlacemark lo único que tenemos que hacer
es configurar toda esta información y llamar al constructor de MKPlacemark.
Sin embargo, la propiedad Address, no es requerida, es opcional y podemos
llamarla con need, y vamos a generar de la misma forma, un objeto de esta clase.
Una vez que tenemos configurado esta información en el objeto MKPlacemark,
generar el objeto MKMapItem, es relativamente simple, porque solo llamamos
a su constructor, que se llama igual que la clase MKMapItem, colocando entre
paréntesis el objeto MKPlacemark, que ya configuramos previamente.
En resumen para hacer la configuración de la petición tenemos que llevar a cabo
4 pasos.
Paso número 1, generar los objetos, MKPlacemark.
Paso número 2, generar los objetos, MKMapItem,
a partir de los objetos MKPlacemark.
Recuerden que normalmente son dos el origen y el destino de la ruta,
que es lo que nos interesa.
6:01
Número 3, configurar el objeto la clase MKDirectionsRaquest.
Esto se hace colocando el origen, el destino y el tipo de transporte.
Y número 4, finalmente hacemos la petición,
por medio del objeto MKDirections, como lo vimos en el video anterior.
Para terminar, los quiero dejar con una pregunta,
para ver si se comprendieron los conceptos y ¿qué información
no podría faltar en la configuración de un MKMapItem?
Seleccionen la opción correcta.
Efectivamente, la respuesta correcta es la localización.
No se puede hacer un objeto MKMapItem sin localización.
La localización es fundamental, el resto de la información es opcional,
pero la localización no puede faltar, lo cual suena bastante lógico.
En el próximo vídeo veremos cómo obtener la información de la petición,
y cómo trabajar con ella para dibujar la ruta final.
Muchas gracias.