Android
Data objects
Mengoptimalkan Geoqueries di Android dengan Parse
9 mnt
geoqueries pendahuluan dalam panduan ini, anda akan belajar bagaimana melakukan kueri geopoint di parse dalam aplikasi android tutorial ini menggunakan aplikasi yang dibuat di android studio arctic fox 2020 3 1 dengan compilesdk = 30 compilesdk = 30 , minsdk = 23 minsdk = 23 dan targetsdk = 30 targetsdk = 30 kapan saja, anda dapat mengakses proyek android lengkap yang dibangun dengan tutorial ini di repositori github kami repositori contoh kotlin repositori contoh java tujuan melakukan geoqueries menggunakan geopoint yang disimpan di back4app dan geolokasi android berikut adalah pratinjau tentang apa yang akan kita capai prasyarat untuk menyelesaikan tutorial ini, kami membutuhkan android studio sebuah aplikasi yang dibuat di back4app catatan ikuti tutorial aplikasi parse baru untuk belajar cara membuat aplikasi parse di back4app sebuah aplikasi android yang terhubung ke back4app catatan ikuti tutorial instalasi parse sdk untuk membuat proyek android studio yang terhubung ke back4app sebuah perangkat (atau perangkat virtual ) yang menjalankan android 4 1 (jelly bean) atau yang lebih baru mari kita mulai! sebelum langkah selanjutnya, kita perlu menghubungkan back4app back4app ke aplikasi kita anda harus menyimpan appid appid dan clientkey clientkey dari back4app back4app ke string xml string xml file dan kemudian inisialisasi parse parse di app java app java atau app kt app kt file ikuti tutorial aplikasi parse baru jika anda tidak tahu cara menginisialisasi parse parse ke aplikasi anda atau anda bisa mengunduh proyek yang kami bagikan tautan github di atas dan hanya mengedit appid appid dan clientkey clientkey bagian sesuai keinginan anda 1 simpan beberapa data di back4app dalam langkah ini, kita akan membuat kelas dengan konsol js dan kode javascript yang disediakan oleh parse parse dan kita akan membuat kueri untuk kelas ini mari kita buat sebuah kota kota , yang akan menjadi target dari kueri kita dalam panduan ini di parse js console, anda dapat menjalankan kode javascript secara langsung, menanyakan dan memperbarui konten database aplikasi anda menggunakan perintah js sdk jalankan kode di bawah ini dari js console anda dan masukkan data ke back4app berikut adalah tampilan js console di dasbor anda silakan lanjutkan dan buat kota kota kelas dengan konten contoh berikut 1 // add city objects and create table 2 // note how geopoints are created, passing latitude and longitude as arguments 3 // montevideo 4 city = new parse object('city'); 5 city set('name', 'montevideo uruguay'); 6 city set('location', new parse geopoint( 34 85553195363169, 56 207280375137955)); 7 await city save(); 8 9 // brasÃlia 10 city = new parse object('city'); 11 city set('name', 'brasÃlia brazil'); 12 city set('location', new parse geopoint( 15 79485821477289, 47 88391074690196)); 13 await city save(); 14 15 // bogotá 16 city = new parse object('city'); 17 city set('name', 'bogotá colombia'); 18 city set('location', new parse geopoint(4 69139880891712, 74 06936691331047)); 19 await city save(); 20 21 // mexico city 22 city = new parse object('city'); 23 city set('name', 'mexico city mexico'); 24 city set('location', new parse geopoint(19 400977162618933, 99 13311378164776)); 25 await city save(); 26 27 // washington, d c 28 city = new parse object('city'); 29 city set('name', 'washington, d c usa'); 30 city set('location', new parse geopoint(38 930727220189944, 77 04626261880388)); 31 await city save(); 32 33 // ottawa 34 city = new parse object('city'); 35 city set('name', 'ottawa canada'); 36 city set('location', new parse geopoint(45 41102167733425, 75 695414598736)); 37 await city save(); 38 39 console log('success!'); 2 kuery data dari aplikasi android sekarang setelah anda memiliki kelas yang terisi, kita dapat melakukan beberapa kueri geopoint di dalamnya mari kita mulai dengan mengurutkan kota kota hasil berdasarkan yang terdekat dari kingston di jamaika (latitude 18 01808695059913 dan longitude 76 79894232253473), menggunakan metode parsequery wherenear parsequery wherenear 1 parsequery\<parseobject> query = new parsequery<>("city"); 2 query wherenear("location",new parsegeopoint(18 018086, 76 798942)); 3 query findinbackground((objects, e) > { 4 if (e==null){ 5 initdata(objects); 6 } else { 7 toast maketext(mainactivity this, e getlocalizedmessage(), toast length short) show(); 8 } 9 });1 val query = parsequery\<parseobject>("city") 2 query wherenear("location", parsegeopoint(18 018086, 76 798942)) 3 query findinbackground { objects list\<parseobject>?, e parseexception? > 4 if (e == null) { 5 initdata(objects!!) 6 } else { 7 toast maketext(this\@mainactivity, e localizedmessage, toast length short) 8 show() 9 } 1 0 } mari kita sekarang melakukan query menggunakan metode parsequery wherewithinkilometers parsequery wherewithinkilometers , yang akan mengambil semua hasil yang field geopoint nya terletak dalam jarak maksimum kingston akan digunakan sekali lagi sebagai referensi dan batas jaraknya adalah 3000 km 1 parsequery\<parseobject> query = new parsequery<>("city"); 2 query wherewithinkilometers("location",new parsegeopoint(18 018086, 76 798942),3000); 3 query findinbackground((objects, e) > { 4 if (e==null){ 5 initdata(objects); 6 } else { 7 toast maketext(mainactivity this, e getlocalizedmessage(), toast length short) show(); 8 } 9 });1 val query = parsequery\<parseobject>("city") 2 query wherewithinkilometers( 3 "location", 4 parsegeopoint(18 018086, 76 798942), 5 3000 0 6 ) 7 query findinbackground { objects list\<parseobject>?, e parseexception? > 8 if (e == null) { 9 initdata(objects!!) 10 } else { 11 toast maketext(this\@mainactivity, e localizedmessage, toast length short) 12 show() 13 } 14 } metode query yang berguna lainnya adalah parsequery wherewithinpolygon parsequery wherewithinpolygon , yang akan melakukan query hasil yang nilai field geopoint nya berada dalam polygon yang ditentukan, yang terdiri dari array geopoints (setidaknya tiga) jika jalur polygon terbuka, itu akan ditutup secara otomatis oleh parse dengan menghubungkan titik terakhir dan pertama untuk contoh ini, anda akan menggunakan polygon sederhana yang kira kira mencakup benua amerika selatan, yang terdiri dari 5 geopoints yang jauh di lautan 1 parsequery\<parseobject> query = new parsequery<>("city"); 2 3 parsegeopoint geopoint1 = new parsegeopoint(15 822238344514378, 72 42845934415942); 4 parsegeopoint geopoint2 = new parsegeopoint( 0 7433770196268968, 97 44765968406668); 5 parsegeopoint geopoint3 = new parsegeopoint( 59 997149373299166, 76 52969196322749); 6 parsegeopoint geopoint4 = new parsegeopoint( 9 488786415007201, 18 346101586021952); 7 parsegeopoint geopoint5 = new parsegeopoint(15 414859532811047, 60 00625459569375); 8 parsegeopoint geopoint6 = new parsegeopoint(41 015137, 28 97953); 9 10 list\<parsegeopoint> list = new arraylist<>(); 11 list add(geopoint1); 12 list add(geopoint2); 13 list add(geopoint3); 14 list add(geopoint4); 15 list add(geopoint5); 16 list add(geopoint6); 17 query wherewithinpolygon("location",list); 18 19 query findinbackground((objects, e) > { 20 if (e==null){ 21 initdata(objects); 22 } else { 23 toast maketext(mainactivity this, e getlocalizedmessage(), toast length short) show(); 24 } 25 });1 val query = parsequery\<parseobject>("city") 2 val geopoint1 = parsegeopoint(15 822238344514378, 72 42845934415942) 3 val geopoint2 = parsegeopoint( 0 7433770196268968, 97 44765968406668) 4 val geopoint3 = parsegeopoint( 59 997149373299166, 76 52969196322749) 5 val geopoint4 = parsegeopoint( 9 488786415007201, 18 346101586021952) 6 val geopoint5 = parsegeopoint(15 414859532811047, 60 00625459569375) 7 val geopoint6 = parsegeopoint(41 015137, 28 97953) 8 val list mutablelist\<parsegeopoint> = 9 arraylist() 10 list add(geopoint1) 11 list add(geopoint2) 12 list add(geopoint3) 13 list add(geopoint4) 14 list add(geopoint5) 15 list add(geopoint6) 16 query wherewithinpolygon("location", list) 17 query findinbackground { objects list\<parseobject>?, e parseexception? > 18 if (e == null) { 19 initdata(objects!!) 20 } else { 21 toast maketext(this\@mainactivity, e localizedmessage, toast length short) 22 show() 23 } 24 } selesai! di akhir panduan ini, anda telah belajar bagaimana cara kerja kueri data geopoint di parse dan bagaimana cara melakukannya di back4app dari aplikasi android di panduan berikutnya, anda akan memeriksa cara membuat dan mengelola pengguna di parse