[MÚSICA] [MÚSICA] Hola, ¿cómo están?
Bienvenidos.
En esta ocasión vamos a tratar el tema de rutas.
Siempre que decimos la palabra ruta, pensamos inmediatamente en una ruta
sobre un mapa, para ir de un punto inicial a un punto final.
Y es efectivamente lo que vamos a hacer en este tema.
Una ruta no es otra cosa más que un conjunto de puntos,
que normalmente vienen en un arreglo, que nos
dicen cómo llegar de un punto inicial a un punto final por medio de un mapa.
No se puede hacer por medio de una línea recta porque
los caminos tienen que seguir calles o tienen que seguir carreteras en el mapa.
Es ahí donde es importante solicitar la ruta y regresar la información adecuada
para trazar esta ruta sobre calles o carreteras.
Cada uno de estos puntos de la ruta contiene cierta información
que puede ser útil o no, dependiendo del objetivo de nuestra aplicación.
Algo que es muy importante es que cada uno de estos puntos tenga una posición
en el mapa, eso es fundamental.
Pero también podría tener dirección, una dirección, cada uno
de estos puntos podría tener su dirección o podría tener las indicaciones necesarias
para llegar a este punto a partir del punto anterior dada una ruta específica.
Estas rutas se obtienen haciendo una petición
directa a los servidores de Apple.
Esta petición se hace,
bueno, con un método que veremos más adelante, pero antes de hacer la
petición necesitamos configurar esta petición con cierta información.
Por ejemplo algo fundamental es que se diga cuál es el punto inicial y cuál
es el punto final entre los que queremos establecer una ruta, eso es básico,
y algún otro tipo de información que platicaremos más adelante cuando veamos
los ejemplos.
Si todo va correcto,
esta petición la hacemos al servidor y el servidor nos contesta con más información.
Esta información que nos manda el servidor de regreso contiene todo,
todo lo necesario para que podamos manipular esta ruta.
Una de las cosas que podemos hacer es dibujarla,
contiene información suficiente para colocar pines en el mapa.
Ustedes ya saben cómo hacer eso, por medio de anotaciones.
También contiene información para poder dibujar una línea sobre la ruta,
para que lo vea claramente el usuario, eso se hace por medio de una polilínea.
Y también contiene información por que nos la devuelve, que se puede usar o no,
contiene la información necesaria para indicarle y darle al usuario todas las
indicaciones necesarias en forma de texto para ir del punto inicial al punto final.
Todo esto se puede hacer gracias al framework Mapkit.
Este framework Mapkit es realmente poderoso, ustedes ya lo utilizaron,
lo utilizaron en el curso 4 cuando vimos localización.
Recordarán que la localización y los mapas están íntimamente relacionados
por las posiciones que se establecen en el mapa,
con ciertos puntos desde luego, están íntimamente relacionadas.
Y el Mapkit en aquella ocasión lo utilizamos en una forma muy simple,
para colocar solamente pines sobre,
pines que eran objetos de la clase CLLocation sobre el mapa.
Y este mapa estaba al alcance de nuestro programa
debido a una vista especial, una vista especial que se llama MKMapView.
Esta vista especial se coloca encima de la vista de nuestra aplicación,
se hace un outlet a esa vista y entonces desde nuestro programa se pueden hacer
acciones sobre el mapa, como colocar pines desde luego.
También comentamos en aquella ocasión que el Mapkit tiene muchas más
características importantes, es un framework muy poderoso.
En aquella ocasión les recomendaba que lo estudiaran por favor,
porque muchas cosas más de las que hicimos en aquél momento.
Bien, ahora vamos a utilizar algunas otras características pero seguimos todavía
viendo muy, en forma muy superficial el Mapkit, por favor vean la documentación,
analicen la documentación y obtengan lo que necesitan para su aplicación.
¿Qué características vamos a ver acerca del Mapkit?
Pues vamos a ver por ejemplo cómo hacer zoom sobre un punto particular,
cómo centrar la vista que se presenta en el zoom, viendo alguna región
alrededor de ese centro y también se pueden mostrar diferentes tipos de mapas.
Esto no lo utilizaremos pero también se puede hacer.
Y una de las características fundamentales de este tema es que, por medio del
Mapkit se pueden obtener rutas, rutas para ir de un punto inicial a un punto final,
todas las indicaciones necesarias para ir de un punto inicial a un punto final.
Esto se hace por medio de un objeto de la clase MKDirections,
y estableciendo el punto inicial y el punto final, bueno,
y los puntos intermedios con objetos de la clase MKMapItem.