1 00:00:02,170 --> 00:00:07,360 Vayamos a Redux, a las acciones de lugares que ahora también recibe un objeto de ubicación y tenga en cuenta que 2 00:00:07,390 --> 00:00:09,490 este es un objeto que se ve así, 3 00:00:09,490 --> 00:00:12,610 por lo que tiene una tecla lat y una tecla lng aquí. 4 00:00:12,610 --> 00:00:21,730 Entonces, en acciones de lugares, en lugar adicional, obtendremos este objeto de ubicación y aquí, por supuesto, quiero almacenarlo en mi base 5 00:00:21,730 --> 00:00:23,920 de datos, quiero almacenarlo en mi 6 00:00:23,920 --> 00:00:25,460 tienda Redux y, 7 00:00:25,540 --> 00:00:28,930 como mencioné, quiero obtener este humano dirección legible, correcta 8 00:00:28,960 --> 00:00:30,010 y para 9 00:00:30,100 --> 00:00:33,130 eso podemos usar otra API de Google. 10 00:00:33,130 --> 00:00:37,610 Si busca la API de geocodificación de Google Maps, encontrará este enlace 11 00:00:37,690 --> 00:00:43,780 aquí y esta es una API que le permite traducir direcciones en coordenadas o coordenadas en direcciones. 12 00:00:44,590 --> 00:00:52,870 Las coordenadas en direcciones se llaman una búsqueda inversa, por lo que podemos hacer clic en geocodificación inversa allí y 13 00:00:52,870 --> 00:00:58,230 esto nos dice cómo funciona y para eso, necesita una clave API de 14 00:00:58,230 --> 00:00:59,530 Google Maps 15 00:01:00,130 --> 00:01:04,960 que configuré anteriormente en este módulo y ahora podemos envíe una 16 00:01:04,960 --> 00:01:10,780 solicitud al final a esta URL aquí. Entonces podemos copiar esta URL completa y enviar una solicitud HTTP a esto. 17 00:01:10,810 --> 00:01:15,130 Ahora, esto no generará una imagen, pero nos devolverá algunos datos JSON, por lo que 18 00:01:15,130 --> 00:01:22,460 enviaremos esa solicitud con la API de recuperación tal como la aprendió en el módulo HTTP y simplemente lo haré aquí dentro de mi controlador 19 00:01:22,460 --> 00:01:27,340 de acción agregar lugar en Esta función interna. Por supuesto, también puede externalizarlo en un archivo 20 00:01:27,460 --> 00:01:29,920 separado si desea mantener este archivo un poco más ágil. 21 00:01:29,980 --> 00:01:36,730 Entonces, podemos usar la API de recuperación y enviar una solicitud a una URL que crearé aquí como una 22 00:01:36,730 --> 00:01:45,620 cadena con marcas de retroceso para que la inyección de datos dinámicos sea más fácil y allí, quiero copiar esta URL aquí y pegarla allí 23 00:01:45,620 --> 00:01:47,080 . De 24 00:01:47,090 --> 00:01:47,930 acuerdo, eso 25 00:01:47,930 --> 00:01:56,310 no funciona, así que permítanme tomarlo manualmente y luego pegarlo allí y para la clave API, por supuesto, quiero usar 26 00:01:56,310 --> 00:01:58,520 esta variable de entorno que 27 00:01:58,520 --> 00:02:02,980 configuré anteriormente, así que importe env desde el archivo env. 28 00:02:02,990 --> 00:02:07,180 Quizás recuerdes que este es un archivo que contiene un objeto que contiene mi clave API. 29 00:02:07,220 --> 00:02:13,040 Así que ahora puedo reemplazar esto aquí, esta cosa clave de API aquí, puedo reemplazar esto con este entorno inyectado 30 00:02:13,460 --> 00:02:14,170 dinámicamente. 31 00:02:14,180 --> 00:02:20,870 El valor de googleapikey y, por supuesto, la latitud y la longitud también deben establecerse dinámicamente. 32 00:02:20,870 --> 00:02:23,840 Asegúrese de no eliminar la coma entre estos dos, pero ahora 33 00:02:23,840 --> 00:02:30,460 aquí se puede encontrar la latitud en mi ubicación, que por supuesto tiene una tecla lat de la forma en que la configuramos, siempre 34 00:02:30,460 --> 00:02:35,620 puede ver eso aquí abajo en la parte inferior de la consola y ubicación como una clave lng también, 35 00:02:35,620 --> 00:02:37,880 por lo que tenemos estos dos datos. 36 00:02:37,960 --> 00:02:39,990 Esto envía una solicitud de 37 00:02:40,000 --> 00:02:45,830 obtención allí y eso está bien porque necesitamos enviar una solicitud de obtención y, por supuesto, podemos 38 00:02:45,970 --> 00:02:50,700 esperar la respuesta y quiero almacenar la respuesta en una constante para usarla. 39 00:02:50,760 --> 00:02:57,690 A continuación, podemos verificar si esta respuesta tal vez no está bien, debería estar bien, pero si no lo está, podríamos lanzar 40 00:02:57,690 --> 00:02:59,930 un nuevo error aquí, algo salió mal 41 00:02:59,970 --> 00:03:01,630 y, por supuesto, también puede 42 00:03:01,710 --> 00:03:05,850 configurar el manejo de errores de la misma manera que aprendió en el 43 00:03:05,860 --> 00:03:06,890 módulo HTTP, 44 00:03:07,200 --> 00:03:09,640 pero aquí supongo que esto funcionará y ahora 45 00:03:09,840 --> 00:03:14,970 podemos obtener los datos de respuesta esperando respuesta. json que extrae el cuerpo de la 46 00:03:14,980 --> 00:03:21,730 respuesta y lo convierte a Javascript normal y por el momento, simplemente voy a consolar los datos de 47 00:03:21,730 --> 00:03:26,780 respuesta para que tengamos una idea de lo que hay allí y ahora 48 00:03:26,920 --> 00:03:28,340 vamos a intentarlo. 49 00:03:29,230 --> 00:03:34,960 Intentemos agregar un nuevo lugar, obtenga la ubicación del usuario y haga clic en guardar lugar 50 00:03:34,960 --> 00:03:37,350 y podemos hacerlo incluso sin completar 51 00:03:37,370 --> 00:03:43,840 el resto porque no tenemos validación aquí en iOS. Así que esto funciona, por supuesto, recibo un error debido a la falta 52 00:03:43,840 --> 00:03:48,500 de datos, pero también obtenemos el resultado de nuestra solicitud HTTP y ese es un objeto súper enorme allí, 53 00:03:48,560 --> 00:03:51,190 ahora es realmente un objeto grande como se puede ver. 54 00:03:51,760 --> 00:03:58,390 Ahora, al final, lo que hay allí, en este objeto grande, este es el objeto aquí, tenemos una clave de resultados allí, que es una matriz y 55 00:03:58,390 --> 00:04:02,310 allí, tenemos los diferentes componentes de esta dirección, pero si se desplaza un poco hacia 56 00:04:02,320 --> 00:04:09,220 abajo, ver además de esta matriz, también tenemos esta clave de dirección formateada. Entonces, en nuestro objeto de resultado aquí, no solo tenemos 57 00:04:09,280 --> 00:04:13,930 esa matriz, sino que también tenemos una dirección formateada y eso es lo que 58 00:04:13,930 --> 00:04:14,690 estoy 59 00:04:14,710 --> 00:04:21,360 buscando, esto es lo que quiero, quiero esta dirección formateada, para que podamos extraer eso de nuestra respuesta datos aquí. 60 00:04:21,360 --> 00:04:26,510 Entonces, en lugar de registrarlo aquí, solo verifico si tal vez no tenemos una clave de 61 00:04:26,520 --> 00:04:34,300 resultados de datos de respuesta, si eso de alguna manera falta, en ese caso también arrojaré un error, pero si lo superamos, entonces debería 62 00:04:34,300 --> 00:04:35,960 estar capaz de recuperarlo. 63 00:04:35,980 --> 00:04:43,210 Entonces aquí puedo derivar mi dirección accediendo a los resultados de los datos de respuesta y luego allí, la primera línea de pedido, 64 00:04:43,280 --> 00:04:43,790 ahí 65 00:04:43,810 --> 00:04:49,540 es donde realmente encontramos la dirección formateada y simplemente puede inspeccionar este objeto que acabo de mostrarle para 66 00:04:49,540 --> 00:04:52,090 tener una idea de su estructura completa . 67 00:04:52,090 --> 00:04:58,570 Por supuesto, los documentos oficiales también documentan cómo se ven estos datos. Así que ahora tenemos la dirección formateada aquí 68 00:04:58,570 --> 00:05:03,550 y, por lo tanto, puedo recuperarla así y ahora tenemos todo lo que necesitamos. 69 00:05:04,420 --> 00:05:09,280 Cuando ahora almacenamos algo en la base de datos, puedo usar mi dirección que acabo de extraer, en lugar de 70 00:05:09,280 --> 00:05:15,210 la dirección ficticia y aquí para la latitud, puedo usar la ubicación. lat, para la longitud, como 71 00:05:15,430 --> 00:05:23,100 era de esperar, puedo usar la ubicación. lng y para el envío de datos, también podemos agregar información adicional. 72 00:05:23,520 --> 00:05:32,100 Podemos agregar la dirección y tal vez una clave coords que contiene un objeto donde tenemos lat, que es la ubicación. lat y lng que 73 00:05:32,100 --> 00:05:40,320 es la ubicación. lng y ahora todos esos datos se pasan con nuestro objeto de acción y, 74 00:05:40,320 --> 00:05:42,380 por lo tanto, llegan a nuestro reductor. 75 00:05:42,480 --> 00:05:47,940 Entonces, en el reductor, ahora debemos asegurarnos de usar la nueva dirección y los campos de coordenadas que obtenemos. Entonces, en el reductor de lugares, 76 00:05:47,940 --> 00:05:53,750 queremos inicializar nuestro lugar aquí con esos datos adicionales y para eso primero tenemos 77 00:05:53,770 --> 00:05:58,150 que ajustar el modelo de lugar para esperar esos datos. 78 00:05:58,150 --> 00:06:04,990 Entonces aquí, quiero obtener una dirección y quiero obtener una latitud y longitud. Entonces podemos almacenar todo eso, almacenar la 79 00:06:04,990 --> 00:06:05,530 dirección 80 00:06:05,530 --> 00:06:08,740 aquí, almacenar la latitud y la 81 00:06:08,880 --> 00:06:17,460 longitud, con eso el modelo está preparado y con el modelo preparado, para recuperar estos datos adicionales 82 00:06:17,460 --> 00:06:22,500 en el reductor, debemos agregar esto cuando agregar un lugar 83 00:06:22,500 --> 00:06:30,420 Entonces aquí agregamos como dirección, la acción. placeData. dirección porque eso es lo que acabo de 84 00:06:30,420 --> 00:06:35,310 agregar en las acciones de lugares aquí, esta tecla de dirección y también podemos obtener las coordenadas. 85 00:06:35,310 --> 00:06:40,860 Entonces, para la latitud aquí, paso la acción. placeData. coords. Lat y por 86 00:06:40,860 --> 00:06:50,620 la longitud, paso la acción. placeData. coords. lng. Con eso, los lugares se 87 00:06:50,620 --> 00:06:51,510 inicializan aquí. 88 00:06:51,520 --> 00:06:57,550 Ahora, cuando los cargamos desde la base de datos, cuando establecemos nuestros lugares, también deberíamos inicializar nuestro modelo 89 00:06:57,550 --> 00:07:01,650 de lugar correctamente y tomar los datos que ya están en 90 00:07:02,020 --> 00:07:07,210 la base de datos, así que mantenga la dirección, la latitud y la longitud, así 91 00:07:07,240 --> 00:07:13,940 que eso es bastante sencillo y, por lo tanto, ahora, esperamos tener todos los datos y usar todos los datos. 92 00:07:14,330 --> 00:07:16,340 Ahora, para ver si eso funciona, tenemos que 93 00:07:16,340 --> 00:07:21,760 trabajar en el elemento del lugar que publicamos aquí en la página de inicio, podemos verlo en Android, para que también 94 00:07:21,950 --> 00:07:23,800 podamos mostrar la dirección aquí tal 95 00:07:24,080 --> 00:07:29,540 vez y también necesitamos trabajar en el lugar Pantalla de detalles. Así que trabajemos en eso para que podamos ver todas 96 00:07:29,540 --> 00:07:30,680 las piezas juntas.