[MÚSICA] Hola, ¿cómo están?
Bienvenidos nuevamente.
En el video anterior vimos cómo configurar
la petición que se hace a los servidores de Apple para que nos devuelva la ruta,
la información referente a la ruta y podemos manipularla.
En este video vamos a ver qué hacer, dónde recibir y qué hacer con esta información
para poder dibujar la ruta sobre el mapa, que es nuestro objetivo final.
Bien, toda la información que nos regresan los servidores de Apple
la recibimos en un bloque.
Este bloque es un bloque del método
que se llama Calculate Directions with Completion Handler.
Este método establece, tiene un bloque,
obviamente y de ahí su nombre, y este bloque tiene dos parámetros.
El primero es realmente el que contiene la información, es un objeto de la
MKDirections Response, este es el objeto fundamental,
el que contiene toda la información necesaria para nuestra ruta.
Pero el otro parámetro es un objeto de la clase NSError,
que obviamente va a tener un valor si es que se produjo un error.
Se produce un error cuando no podemos obtener la ruta que solicitamos
por alguna razón.
Entonces, recuerden que lo primero que tenemos que hacer, antes de manipular los
datos que recibimos, es verificar si el objeto error no tiene ningún valor.
Si es Nil entonces podemos continuar, si tiene un valor entonces
hacemos algo con el error y volvemos a hacer la petición, eso es muy importante.
El objeto respuesta que vamos a llamar respuesta realmente,
el objeto de la clase MKDirections Response contiene varias propiedades.
Una de ellas es la propiedad route.
Esta propiedad es la que contiene la información
que queremos para dibujar esta ruta.
La propiedad es un objeto de la clase MKRoute
y esta propiedad no es otra cosa más que un arreglo
de puntos por los que tenemos que pasar para ir del punto inicial al
punto final de la petición que le hicimos a los servidores para obtener la ruta.
Una vez que recibimos esta información,
también recibimos la información necesaria para dibujar la ruta.
Esto se hace por medio de la propiedad polyline que tiene cada punto.
Esta propiedad polyline, que es un objeto de la clase MKPolyline,
lo único que hace es que itera sobre el arreglo que establecen los puntos de la
ruta y en cada paso va agregando la propiedad polyline,
es decir, una nueva línea al objeto de la clase MapView, al objeto de la clase
MKMapView, a nuestra vista, a nuestro mapa,
va agregándole línea por línea hasta que terminamos todo el arreglo.
Cuando terminamos el arreglo, tendremos la línea dibujada, desde luego.
Sin embargo, esta iteración, este dibujo,
no va a tener ningún efecto si no se implementó