Saya sedang mengerjakan perangkat lunak yang sangat berorientasi ESRI, tetapi versi yang akan datang kemungkinan tidak akan menggunakan perangkat lunak ESRI. Ini menggunakan Shapefile dan Geodatabases. Saya berencana untuk mengirimkan semua data saya ke Shapefile sebagai antisipasi untuk versi masa depan dari perangkat lunak yang kemungkinan akan ada di Android dan perangkat seluler lainnya. Tampaknya Shapefile adalah datatype yang paling umum untuk fitur di dunia GIS open-source, tetapi apa yang lain, dan manfaat apa yang mereka bawa? Saya kenal dengan GeoJSON dan KML, tapi saya yakin ada yang lain.
Saya ingin mengetahui semua opsi, tetapi saya sangat tertarik dengan tipe dataset yang paling cocok untuk disimpan pada perangkat seluler (data harus dapat diakses tanpa koneksi internet).
sumber
Jawaban:
Seperti kata @ user890, ini sangat tergantung pada bagaimana data akan digunakan. Terutama ada dua cara Anda dapat mengakses data:
Format seperti GeoJSON dan KML paling cocok untuk kasus ketika Anda ingin memuat semuanya dalam sekali jalan. Manfaatnya adalah bahwa data dapat disusun dengan cara yang lebih cocok untuk aplikasi Anda. Kelemahannya: ukuran file lebih besar (karena berbasis teks) dan ketidakmampuan untuk melakukan kueri efisien langsung dari file.
SQLite / Spatialite lebih baik untuk query (SQL), tetapi lebih sulit untuk menyusun data - Anda harus meratakan semuanya ke dalam tabel database dan kemudian melakukan GABUNG (yang bisa mahal) saat melakukan query.
Sebenarnya tidak ada format file yang sempurna yang akan mencakup semua (tapi sekali lagi shapefile jauh, jauh dari sempurna). Salah satu alternatif untuk dipertimbangkan adalah menggulung format spesifik aplikasi Anda sendiri, tetapi ini hanya berfungsi jika Anda tidak perlu berbagi data dengan dunia luar.
sumber
Saya pikir daftar Format Vektor OGR (tautan diperbarui) mengidentifikasi hampir setiap format open source yang pernah saya dengar, dan masih banyak lagi. Masing-masing format memiliki kelebihan / kekurangannya sendiri, sehingga sulit untuk mengatakan mana yang 'terbaik'. Untuk aplikasi seluler, saya membayangkan ukuran file akan menjadi salah satu faktor penentu yang lebih penting.
Untuk aplikasi seluler, saya pikir format sqlite / spatialite akan menjadi format logis untuk memulai. Saya tahu Android menyediakan dukungan asli untuk sqlite. Jadi, dengan asumsi Anda dapat memuat ekstensi spasial, Anda akan memiliki gis yang sangat kuat yang tersedia untuk Anda.
Tergantung pada seberapa petualangan Anda, akan tampak bahwa membangun gdal untuk android bukanlah hal yang mustahil. Anda kemudian bisa memiliki lebih banyak format yang Anda inginkan. Saya yakin banyak pengguna di situs ini akan tertarik jika Anda menggunakan rute ini.
sumber
Format baru yang muncul baru-baru ini adalah Geopackage . Spesifikasi ini dibangun di atas basis data SQLite, sehingga memiliki basis file tunggal yang sama, tetapi dengan manfaat tambahan sebagai standar OGC .
Adapun ukuran file, kemungkinan format penyimpanan lebih kompak daripada
.shp
dan.dbf
format untuk data spasial dan atribut yang digunakan dalam Shapefile. Oleh karena itu, GeoPackage cenderung memiliki ukuran yang sama, atau lebih kecil, daripada totalitas fitur yang sama dalam sebuah shapefile.Foto ini menunjukkan saluran pembuangan utama di San Diego yang disimpan sebagai Shapefile dan GeoPackage. Seperti yang Anda lihat, mereka pada dasarnya berukuran sama.
Karena format ini didasarkan pada SQLite, format ini seharusnya sudah jadi untuk perangkat seluler. Banyak aplikasi yang sudah menggunakan format database ini untuk penyimpanan, jadi itu adalah teknologi yang sudah terbukti. Dapat digunakan lintas platform tanpa memerlukan terjemahan apa pun.
sumber
Setuju dengan Lennert, pilih format yang tepat untuk pekerjaan itu.
Namun saya telah menemukan Spatialite menjadi format yang cukup serbaguna. Anda memiliki file tunggal yang memberi Anda fleksibilitas dalam menyimpan dan berbagi data seperti shapefile, tetapi Anda meniadakan masalah yang Anda sebutkan dengan batas karakter; sementara memberi Anda kesempatan untuk memanfaatkan manfaat dari basis data spasial.
Sayangnya itu tidak sepenuhnya didukung di ArcGIS (saya belum mencoba dalam beberapa saat sehingga saya bisa salah), tetapi berfungsi dengan baik di QGIS.
sumber
Ada banyak format berbeda dan yang terbaik tergantung pada kumpulan data yang Anda miliki, alat yang Anda gunakan, dan hal-hal yang ingin Anda lakukan dengannya.
Beberapa yang saya gunakan:
File Geodatabase & spatialite databases: Sebuah catchall yang saya suka gunakan. Ini dapat menampung semua jenis data dan memiliki hubungan, pengindeksan ... Saya menggunakan gdb ketika bekerja di lingkungan Esri, spasial untuk hal lain.
GeoJson: Format yang mudah dibaca umumnya saya gunakan untuk dataset kecil yang tidak memerlukan banyak cara pengindeksan
Basis data yang tepat: Saya cenderung menggunakan ini untuk kumpulan data besar dan algoritma yang kompleks.
Tapi ada banyak lainnya juga.
sumber
Saya akan merekomendasikan menggunakan database SQLite / spatiallite. Ini adalah file tunggal seperti geodatabase (satu ke banyak tabel / lapisan dalam) dan dapat digunakan di ArcGIS Desktop dan QGIS.
sumber
Pilihannya sangat tergantung pada bahasa apa yang akan Anda gunakan dan bagaimana data akan digunakan. Android kemungkinan besar adalah Java. Setiap opsi akan menjadi semacam perbandingan biaya / manfaat berdasarkan keputusan itu. Semua format data dioptimalkan untuk kasus penggunaan tertentu.
Pertanyaan selanjutnya adalah bagaimana data akan digunakan. Akankah aplikasi seluler hanya membaca data spasial? Atau akan sering membaca dan menulis data? Seberapa sering akan bertukar data dengan perangkat atau server lain?
sumber