Saya hanya ingin meminta saran dari guru GIS open source tentang tumpukan yang disarankan untuk digunakan untuk proyek yang saya bayangkan, karena saya tidak sepenuhnya memahami batas kemungkinan dengan sebagian besar paket. Saya tahu saya bisa melakukan apa yang saya inginkan dengan menggunakan berbagai paket ESRI, tetapi saya ingin lebih murah dan terbuka untuk dilihat dunia. Saya yakin saya bisa menghadapi tantangan apa pun dan mempelajari karya-karya dengan cukup baik untuk mewujudkan proyek, saya hanya ingin menghindari jalan yang salah sejak awal.
Visi situs saya: Dalam hal UI, situs yang mencari NON-GIS! Sesuatu yang lebih sesuai dengan whereis.com dengan segala sesuatu (atau hampir semuanya) dilakukan pada kotak yang melayang di atas peta dasar. Spesifikasinya tidak penting sekarang, hanya menekankan tidak ada lapisan SIG dengan kotak centang di panel terpisah, dll. Dalam hal interaksi pengguna, pengguna terdaftar dapat membuat fitur (seperti lokasi minum air mancur, jalur berjalan, dll.) Di atas pangkalan memetakan, dan mengedit fitur mereka sendiri. Jika mungkin, edit HANYA fitur mereka sendiri yang mereka buat. Peta kolaboratif, sungguh.
Saya masih sebagian besar dalam mode penelitian, bermain-main dengan berbagai paket tetapi hanya demi pengenalan umum dan bukan pengujian nyata (yang akan memerlukan mempelajari mereka secara rinci terlebih dahulu!). PostGIS tampaknya merupakan cara yang tepat untuk menjadi DB (s) yang mendasarinya, dengan Geoserver / Mapserver sebagai middleware yang paling mungkin. Openlayers hampir pasti akan menjadi peta yang licin, karena saya sudah nyaman dengan itu dan tahu kekuatannya.
Jadi itu membawa saya ke dua masalah utama yang membutuhkan sebagian besar saran:
1) Apa UI lapisan atas terbaik untuk situs seperti ini?
Apakah itu contoh Django yang disesuaikan (atau bahkan Django-CMS), atau contoh turunan GeoExt atau pustaka lain (tidak yakin apakah Anda dapat membuat login / registrasi / UI penuh dengannya), kerangka kerja CMS / kerangka kerja yang berbeda ( tidak, bukan drupal atau apapun yang membatasi!), atau sesuatu yang sama sekali berbeda?
2) Apakah mungkin pengguna situs terdaftar hanya mengedit fitur mereka sendiri?
Saya ingin menghindari tempat "graffiti" massal seperti OSM dan pengalaman proyek kolaborasi lainnya. Tampaknya dari bacaan dan saran saya sebelumnya bahwa Geoserver tidak dapat memiliki otentikasi pengguna tingkat fitur.
Bisakah Mapserver?
Saya bahkan tidak tahu apakah populasi pengguna situs (dari CMS, atau framework) bahkan dapat langsung terhubung ke geoserver / mapserver.
Jika konsep seperti itu tidak mungkin dilakukan dengan solusi open source, adakah cara lain untuk mencapai tujuan itu?
Sudahkah pengguna terotentikasi mengedit versi yang tidak dipublikasikan dari lapisan fitur utama (agar tidak mengacaukan yang asli) dan secara otomatis menggabungkannya ke versi yang diterbitkan setiap 24 jam sambil mempertahankan cadangan harian dari yang asli?
Agak bingung bagaimana mencapai maksud ini.
Dan ya, saya sudah melihat GeoNode juga, tapi saya hanya ingin satu peta keseluruhan (tetap sederhana) dan UI-nya tidak cukup interaktif (sebelum masuk ke GeoExplorer) atau terlalu mirip GIS di GeoExplorer. Sepertinya terlalu kalengan solusi untuk proyek ini.
Maaf menjadi begitu terbuka berakhir di sini dan samar-samar, tapi saya berharap dapat memulai jalan di mana hal di atas mungkin dan tidak berjalan ke dinding beberapa bulan dari sekarang, hanya harus mulai dari awal lagi karena jalan # 1 tidak pernah memiliki fungsi itu sejak awal!
Salah satu contoh terbaik yang bisa saya temukan adalah http://www.gpsies.com Saya tahu ini menggunakan leaflet, tetapi tidak yakin dengan kerangka dan basis data yang mendasarinya. Pengguna dapat membuat / mengunggah fitur mereka sendiri, tetapi tidak mengedit yang lain.
Jawaban:
Karena saya sedang membangun sesuatu yang agak mirip sekarang, saya akan memberi tahu Anda bagaimana saya melakukannya dan Anda dapat memilih untuk mengubah apa pun yang Anda inginkan darinya untuk bagian lain.
Django (dengan GeoDjango ) cukup bagus untuk ini sebagai kerangka dasar untuk python (sekali lagi, jika itu adalah hal Anda, Anda bisa melakukan ini dalam bahasa lain).
Pendekatan saya untuk pengeditan tingkat pengguna mirip dengan apa yang dijelaskan CaptDragon. Saya menggunakan kerangka otentikasi Django . Untuk proyek ini, API saya sedang dibuat menggunakan Django's Tasty Pie yang sudah memiliki kerangka kerja yang memungkinkan Anda membuat RESTful API yang tepat dengan autentifikasi yang dipertimbangkan dengan cukup mudah.
Mapserver saya (atau Geoserver atau apa pun yang Anda pilih untuk digunakan) tidak pernah terpapar langsung ke dunia luar (hanya server lokal yang memiliki akses ke itu) ... semua ubin dilayani menggunakan server ubin ( geowebcache , tilecache , tilestache apa pun ).
Saya tidak perlu menyebutkan Openlayers, karena Anda sudah memilih itu. Pilihan bagus.
PostgreSQL / PostGIS adalah no-brainer. :)
Sebagai perpustakaan javascript, Anda tidak akan pernah salah dengan jQuery. Jika Anda akan mengizinkan beberapa pengeditan, Anda dapat mengambil manfaat dari memiliki beberapa struktur objek javascript Anda menggunakan sesuatu seperti backbone.js . Ambil ini dengan sebutir garam. Beberapa orang menyukainya - yang lain membencinya.
Jika Anda tidak ingin situs Anda terlihat sangat jelek, bantulah diri Anda sendiri dan gunakan kerangka kerja css seperti Bootstrap atau Kompas atau alternatif, seharga $ 20, beli saja dari themeforest atau wrapstrap (jika Anda ingin membuka sumbernya, Anda dapat ingin melihat lisensi jika Anda akan membelinya). Menghubungkan salah satu dari ini memakan waktu sekitar sehari dan membuat perbedaan besar pada bagaimana situs Anda terlihat!
Secara pribadi, saya telah melihat Django-cms (dan Pinax ) beberapa kali dan saya tidak pernah dapat meyakinkan diri saya bahwa itu sepadan dengan masalahnya. Saya belum pernah menyesali keputusan itu.
Karena Anda memilih proyek yang akan membutuhkan berbagai versi skema Anda (semakin banyak Anda mengembangkan, semakin banyak itu akan berubah), cukup gunakan selatan . Jangan ragu tentang itu! Serius.
Itulah yang akan saya gunakan, tetapi hal yang menyenangkan tentang Open Source adalah Anda dapat mengubah bagian yang sesuai dengan kebutuhan Anda.
sumber
Saya menggunakan tumpukan yang mirip dengan Ragi, saya dekat dengan versi alpha dari aplikasi saya dan pada titik ini sepertinya ada pilihan yang benar. Ini solusinya:
Di server:
Di klien:
sumber
Mungkinkah pengguna situs terdaftar hanya mengedit fitur mereka sendiri?
Tampaknya ini dimungkinkan menggunakan Cartaro. Ini didasarkan pada Drupal (saya tahu, Anda mengatakan tidak ada yang membatasi seperti Drupal, tapi dengarkan saya!) Dan memungkinkan pengguna untuk hanya mengedit fitur mereka sendiri, di antara opsi lainnya. Berikut screenshot yang diambil dari halaman People saat login sebagai admin, yang menunjukkan jenis izin yang dapat diatur untuk pengguna:
Selain itu, Cartaro beroperasi pada PostGIS, GeoServer, dan OpenLayers, sehingga berpotensi memiliki semua yang Anda cari.
Apa UI lapisan atas terbaik untuk situs seperti ini?
Saya tidak tahu apa lapisan atas "terbaik", tetapi sepertinya Cartaro dapat memberikan apa yang Anda cari karena Drupal memiliki banyak pilihan UI. Sepertinya Cartaro adalah awal dalam pengembangan (saya pribadi tidak tahu siapa yang menggunakannya), tetapi memiliki potensi.
sumber
Saya akan menjawab pertanyaan # 2 Ini adalah bagaimana saya mengatasi masalah mengizinkan pengguna untuk mengedit catatan mereka sendiri.
Saya membuat layanan web saya sendiri RESTFUL atau SOAP (pilihan Anda) seperti
UpdateUserRecord(string WKTLocation, string otherArg)
yang terkait dengan mekanisme otentikasi situs web Anda.OpenLayers dan PostGIS membaca dan menulis Teks Terkenal (WKT) serta GML dan format standar lainnya, tetapi saya pribadi menggunakan WKT untuk meneruskan informasi geometri kembali dan formulir dari aplikasi saya, melalui layanan web dan ke dalam DB PostGIS.
Metode web saya juga seperti
UpdateUserRecord
hanya dapat dipanggil oleh pengguna sesi terotentikasi. A401 Unauthorized
dikembalikan jika orang lain mencoba memanggil layanan web ini. Dalam kasus saya, saya menggunakan .NET dan FormsAuthentication dengan opsi autentifikasi menggunakan OpenAuth2 (Google, Facebook, Twitter, dll). Ini juga bisa dilakukan di PHP, Java, dll.Jadi Anda dapat membuat metode web yang memanggil basis data PostGIS secara langsung dan memperbarui atau menyisipkan catatan sesuai keinginan Anda. Dan itulah yang saya lakukan.
Kemudian saya menggunakan GeoServer untuk WFS, kemampuan permintaan WMS dan kemudahan menampilkan informasi pada peta di mana saya akan menyediakan UserID jika permintaan memanggilnya.
Semoga ini membantu.
sumber