Melihat peningkatan gerakan NoSQL dan mempertimbangkan bahwa database seperti MongoDB menawarkan perspektif baru dalam penyimpanan data yang fleksibel untuk GIS. Apa cara terbaik untuk menyimpan garis dan poligon dalam dokumen JSON untuk memanfaatkan indeks 2d dan fungsi spasial?
24
Jawaban:
GeoJSON di sini adalah SPEC .
Berikut adalah contoh garis dan poligon:
sumber
Satu hal yang perlu diperhatikan adalah bahwa dukungan MongoDB untuk tipe data spasial sangat buruk untuk setiap pencarian spasial yang serius, dan ini berlaku secara menyeluruh dengan NoSQL terakhir kali saya periksa. Saya tidak suka GeoCouch sedikit kurang, tetapi juga masih memiliki cara untuk pergi.
GeoJSON adalah format yang fantastis tetapi untuk mengambil keuntungan dari indeks spasial terbatas (POINT-ONLY) di Mongo, Anda memerlukan koleksi yang diindeks secara spasial yang tidak memiliki apa-apa selain catatan untuk masing-masing poin poligon dengan nilai tambahan untuk ID rekaman dari data Anda. catatan spasial yang hidup dalam koleksi lain, kemudian menggunakan kueri kotak pembatas untuk mendapatkan ID rekaman dari satu dan memilih dari yang lain, secara efektif meniru gabungan.
Anda bisa menjadi bangkrut dan hanya melakukan sudut-sudut kotak pembatas sebagai poin untuk catatan Anda, tetapi kemudian pencarian kotak pembatas mungkin gagal dan semuanya memaksa beberapa pola desain yang sangat tidak efisien dan secara tidak tepat mendorong semua jenis tanggung jawab kepada pengembang.
Sebagai implementasi referensi, Anda mungkin ingin merujuk ke kode ini yang dipresentasikan pada Esri Developer Summit tahun ini.
Saya sama sekali tidak senang dengan dukungan spasial pada berbagai database NoSQL. Mereka hanya pergi cukup jauh untuk pencarian cloud titik bodoh, yang masuk akal mengingat sebagian besar aplikasi menggunakan ini hanya menjatuhkan pushpins ke peta Google pada browser di suatu tempat. PostGIS masih akan menjadi pekerja keras sumber terbuka terbaik untuk mengelola informasi spasial di masa mendatang.
sumber
Ini tidak benar,
"untuk mengambil keuntungan dari indeks spasial di Mongo, Anda akan memerlukan koleksi yang diindeks secara spasial yang hanya menyimpan catatan untuk setiap poin poligon, dengan nilai tambahan untuk ID rekaman dari catatan spasial Anda yang hidup dalam koleksi lain, kemudian gunakan membatasi kueri kotak untuk mendapatkan ID rekaman dari satu [koleksi] dan pilih [data rekaman] dari [koleksi] lainnya, secara efektif meniru gabungan. "
Saya memiliki data titik USGS yang disimpan dalam satu koleksi Mongo dengan catatan yang terlihat seperti ini:
Saya dapat melakukan kueri kotak terikat pada data ini yang mengembalikan seluruh catatan (tanpa perlu koleksi lain) baik-baik saja.
Pertanyaan:
Tanggapan:
Mongo juga menyediakan kemampuan untuk melakukan pencarian tetangga terdekat, serta mengarahkan pencarian poligon. Ini didokumentasikan dengan baik di mongodb.org
sumber