Mari kita pergi ke Redux, ke tindakan tempat yang sekarang menerima objek lokasi juga dan perlu diingat
bahwa ini adalah objek yang terlihat
seperti ini, sehingga memiliki kunci lat dan lng di sini.
Jadi di tempat tindakan, di tambah tempat, kita akan mendapatkan objek lokasi ini dan di sini, saya tentu saja ingin menyimpannya di database saya, saya
ingin menyimpannya di toko Redux saya
dan seperti yang saya
sebutkan, saya ingin mendapatkan manusia ini alamat yang dapat dibaca,
tepat dan
untuk itu kita dapat menggunakan Google API lain.
Jika Anda mencari Google geocoding API, Anda akan menemukan tautan ini di
sini dan ini adalah API yang memungkinkan Anda untuk menerjemahkan alamat menjadi koordinat atau koordinat ke alamat.
Koordinat ke alamat disebut reverse look up, jadi kita bisa klik reverse geocoding di sana dan ini memberitahu kita
cara kerjanya dan untuk itu, Anda memerlukan kunci Google Maps API yang
telah saya
atur sebelumnya di modul ini dan sekarang kita bisa kirim permintaan
di akhir ke URL ini di sini. Jadi kita bisa menyalin seluruh URL ini dan mengirim permintaan HTTP ke ini.
Sekarang ini tidak akan menghasilkan gambar tetapi memberikan kami kembali beberapa data JSON, jadi kami
akan mengirimkan permintaan itu dengan mengambil API saat Anda mempelajarinya dalam modul HTTP dan saya hanya akan melakukannya di sini di dalam penangan tindakan
menambahkan tempat saya di fungsi batin ini. Tentu saja Anda juga bisa mengalihdayakannya dalam file terpisah
meskipun jika Anda ingin menjaga file ini sedikit lebih ramping.
Jadi di sana, kita dapat menggunakan API ambil dan mengirim permintaan ke URL yang akan saya buat di sini
sebagai string dengan tanda centang kembali sehingga menyuntikkan data dinamis lebih mudah dan di sana, saya ingin menyalin URL ini di sini dan menempelkannya di
sana . Oke
itu tidak
berfungsi, jadi izinkan saya secara manual ambil dulu dan sekarang tempel di sana dan untuk kunci API, saya tentu saja
ingin menggunakan variabel lingkungan ini
yang saya atur sebelumnya, jadi impor env dari file env.
Anda mungkin ingat ini adalah file yang menyimpan objek yang menyimpan kunci API saya.
Jadi sekarang saya bisa mengganti ini di sini, ini kunci API di sini, saya bisa mengganti ini dengan env yang disuntikkan secara dinamis
ini.
Nilai googleapikey dan tentu saja lintang dan bujur juga perlu diatur secara dinamis.
Pastikan Anda tidak menghapus koma di antara keduanya, tetapi
sekarang di sini lintang dapat ditemukan di lokasi saya yang tentu saja memiliki kunci lat seperti yang kami atur, Anda
selalu dapat melihatnya di sini di bagian bawah di konsol dan lokasi sebagai kunci lng juga,
jadi kami memiliki dua informasi ini.
Ini mengirimkan permintaan get di
sana dan tidak apa-apa karena kita perlu mengirim permintaan get dan tentu saja, karena itu kita
bisa menunggu tanggapan dan saya ingin menyimpan tanggapan dalam konstan untuk menggunakannya.
Selanjutnya kita dapat memeriksa apakah respons ini mungkin tidak baik-baik saja, itu seharusnya baik-baik saja tetapi jika tidak, kita bisa melempar kesalahan baru
di sini, ada yang tidak beres dan
tentu saja Anda juga dapat
mengatur penanganan kesalahan dengan cara yang sama seperti yang Anda pelajari dalam modul HTTP
tetapi di
sini saya berasumsi bahwa ini akan berfungsi dan
sekarang kita bisa mendapatkan data respons dengan menunggu respons. json yang mengekstrak isi respons dan
mengubahnya menjadi Javascript normal dan untuk saat ini, saya hanya akan menghibur log data respons itu
sehingga kami mendapatkan gagasan tentang apa yang ada di sana dan sekarang
mari kita coba.
Mari kita coba tambahkan tempat baru, dapatkan lokasi pengguna dan klik simpan tempat dan kita bisa
melakukannya bahkan tanpa mengisi sisanya
karena kita tidak punya validasi di sini di iOS. Jadi ini berfungsi, tentu saja saya mendapatkan kesalahan karena data yang hilang
tetapi kami juga benar-benar mendapatkan hasil permintaan HTTP kami dan itu adalah objek super besar di sana,
sekarang itu benar-benar objek besar seperti yang Anda tahu.
Sekarang pada akhirnya apa yang ada di sana, dalam objek besar ini apakah ini objek di sini, kami memiliki kunci hasil di sana yang merupakan array dan
di sana, kami memiliki komponen berbeda dari alamat ini tetapi jika Anda gulir ke bawah sedikit,
kami lihat di samping array ini, kami juga memiliki kunci alamat yang diformat ini. Jadi di objek hasil kami di sini, kami tidak hanya
memiliki array itu tetapi kami juga memiliki alamat yang diformat dan itulah yang saya
cari,
ini yang saya inginkan, saya ingin alamat yang diformat ini, sehingga kami dapat mengekstraknya dari respons kami data di sini.
Jadi alih-alih mencatatnya di sini, saya hanya memeriksa apakah kita mungkin tidak memiliki kunci hasil
data tanggapan, jika itu entah bagaimana hilang, dalam hal itu saya juga akan melempar kesalahan tetapi jika kita berhasil melewati pemeriksaan ini, maka
saya harus dapat mengambilnya.
Jadi di sini saya kemudian dapat memperoleh alamat saya dengan mengakses hasil data tanggapan dan kemudian di sana, item baris pertama, di
situlah
kita sebenarnya menemukan alamat yang diformat dan Anda cukup memeriksa objek ini. Saya hanya menunjukkan kepada Anda
untuk mendapatkan ide untuk struktur lengkapnya. .
Tentu saja dokumen resmi juga mendokumentasikan bagaimana data ini terlihat seperti yang Anda dapatkan kembali. Jadi sekarang kami memiliki alamat yang diformat di sini
dan karena itu saya dapat mengambilnya seperti ini dan sekarang kami mendapatkan semua yang kami butuhkan.
Ketika kita sekarang menyimpan sesuatu di database, saya bisa menggunakan alamat saya yang baru saja saya ekstrak, bukan alamat
dummy dan di sini untuk garis lintang, saya bisa menggunakan lokasi. lat, untuk garis bujur
tidak mengejutkan saya bisa menggunakan lokasi. lng dan untuk mengirim data, kami juga dapat menambahkan informasi tambahan.
Kami dapat menambahkan alamat dan mungkin kunci coords yang menyimpan objek di mana kami memiliki lat yang merupakan lokasi. lat dan lng yang
merupakan lokasi. lng dan sekarang semua data diteruskan dengan objek aksi kami
dan karenanya mencapai peredam kami.
Jadi dalam peredam, kita sekarang perlu memastikan bahwa kita menggunakan bidang alamat dan koordinat baru yang kita dapatkan. Jadi di peredam tempat, kami
ingin menginisialisasi tempat kami di sini dengan data tambahan dan untuk itu kami
pertama-tama perlu mengubah model tempat untuk mengharapkan data itu.
Jadi di sini, saya ingin mendapatkan alamat dan saya ingin mendapatkan garis lintang dan bujur. Jadi kita dapat menyimpan semua itu, menyimpan
alamat
di sini, menyimpan garis lintang dan
menyimpan garis bujur, dengan model yang disiapkan dan dengan model yang disiapkan, untuk mendapatkan data tambahan ini kembali
ke dalam peredam, kita harus menambahkan ini ketika kita tambahkan tempat.
Jadi di sini kita kemudian tambahkan sebagai alamat, tindakan. placeData. alamat karena itulah yang baru saja saya
tambahkan di tindakan tempat di sini, kunci alamat ini dan kami juga bisa mendapatkan koordinat.
Jadi untuk garis lintang di sini, saya memberikan aksi. placeData. coords. lat dan untuk
garis bujur, saya meneruskan aksi. placeData. coords. lng. Dengan itu, tempat diinisialisasi di
sini.
Sekarang ketika kita memuatnya dari database, ketika kita mengatur tempat kita, karena itu kita juga harus
menginisialisasi model tempat kita dengan benar dan mengambil data yang
sudah ada dalam database, jadi simpan alamatnya, simpan lintangnya dan pertahankan garis bujurnya,
jadi itu cukup mudah dan oleh karena itu sekarang, semoga kami memiliki semua data dan menggunakan semua data.
Sekarang untuk melihat apakah itu berfungsi, kita
perlu mengerjakan item tempat yang kita hasilkan di sini di halaman awal, kita bisa melihatnya di Android, sehingga kita
juga menunjukkan alamat di sini mungkin
dan kita juga perlu bekerja di tempat itu layar detail. Jadi mari kita kerjakan itu sehingga kita bisa melihat
semua bagian menyatu.