Saya memiliki rekan kerja yang mengelola basis data MS Access besar yang berisi bidang X & Y untuk berbagai lokasi yang dilacaknya. Kami sebelumnya telah mengekspor data ke CSV dan menggunakan Plugin Teks Terbatas QGIS untuk memplot lokasi.
Kami sekarang ingin memplot data ini secara langsung di QGIS dengan menghubungkan ke MS Access db melalui koneksi ODBC (sebagai lawan dari ekspor ke CSV).
- Bisakah QGIS menggunakan data dari koneksi ODBC untuk memplot lokasi XY?
- Bisakah itu "terhubung langsung" ke koneksi ODBC sehingga ketika sebuah proyek dibuka kembali, layer "replots" semua lokasi lama dan baru ditambahkan secara dinamis (sebagai lawan dari mengekspor ke shapefile, yang akan membuat snapshot dalam waktu)?
- Bisakah Anda membuat koneksi ODBC tabel yang dapat digabungkan ke tabel spasial dalam QGIS?
Anda dapat melakukan semua ini di ArcGIS (alat "Tambahkan Data XY"), jadi alangkah baiknya jika kemampuan ini ada di QGIS. Saya tidak bisa menemukan tempat yang menyebutkan keberadaannya.
Saya tidak berencana untuk pindah ke basis data spasial. Sebagai orang GIS sendiri, ya saya tahu masuk akal untuk pindah ke basis data spasial, dan ya saya telah menggunakan PostGIS untuk mengelola data semacam ini. Tapi ini bukan opsi saat ini. Pengguna bukan orang GIS atau ingin, dan ia mengelola database sendiri di MS Access dan itu tidak akan berubah. Saya dan saya menariknya menendang dan berteriak ke dunia GIS dan ingin membuatnya semudah mungkin. Dia dapat hidup dengan mengekspor ke CSV, saya hanya berharap ada solusi yang lebih baik MENGGUNAKAN ODBC UNTUK MS ACCESS dan menampilkan data XY di QGIS.
Jawaban:
Peringatan: Saya belum mencoba ini, jadi saya bersedia tunduk pada siapa pun dengan pengalaman langsung.
Anda dapat terhubung ke sumber data ODBC dalam dialog "tambahkan lapisan vektor", cukup pilih "database" sebagai jenis sumber dan ODBC sebagai jenis basis data. QGIS menggunakan driver ODBC untuk OGR , sehingga peringatan yang sama akan berlaku - yaitu Anda akan membutuhkan tabel yang disebut GEOMETRY_COLUMNS dan seterusnya, sehingga kolega Anda mungkin perlu memodifikasi database.
Saya tidak menggunakan Access sejak lama setelah rilis versi 1.0, tetapi karena tidak diaktifkan secara spasial, Anda mungkin akan menemukan kinerja menjadi masalah. Agaknya Anda tidak akan hanya meninggalkan Access dan mulai menggunakan basis data yang diaktifkan secara spasial, karena itu tidak mungkin layak secara ekonomi, tetapi jika rekan kerja Anda pernah merasakan dorongan untuk perubahan, saya sangat merekomendasikan untuk beralih ke sesuatu yang lebih sedikit. kuat.
sumber
Dengan alat "Pemrosesan" baru yang tersedia di QGIS 2, ini menjadi sedikit lebih mudah. Sementara saya masih belum menemukan cara untuk "live-link" data (sehingga jika Anda mengubah nilai-nilai dalam tabel MS Access, titik tersebut bergerak secara otomatis), metode ini tampaknya berfungsi dengan cukup baik.
Penghargaan diberikan kepada "Christina" dan "Bernd" di bagian komentar di halaman ini (dan tentu saja @underdark untuk blog) untuk cara membuat koneksi ODBC ke database MS Access Anda:
Buat Koneksi ODBC:
Untuk Win7, 32 bit: Buka panel kontrol / alat administratif / sumber data (ODBC)
Untuk Win7, 64 bit: Alih-alih menggunakan "panel kontrol / alat administratif / sumber data (ODBC)" default - dengan versi 64bit, Anda harus menggunakan C: \ Windows \ SysWOW64 \ odbcad32.exe!
Muat layer ke QGIS:
Konversikan data XY ke Poin:
sumber
Sementara saya masih tertarik untuk mendengar jika ada opsi lain yang tersedia, saya menemukan posting pesan yang menyebutkan ini mungkin menggunakan Plugin eVis .
Dokumentasi menjelaskan di bagian Koneksi Database bagaimana Anda dapat terhubung ke koneksi MS Access atau ODBC untuk membuat lokasi titik XY dari database, tanpa membuat snapshot statis. Saya cukup mengetik "select * from" dan eV muncul kotak dialog yang meminta nama layer dan bidang XY.
Sayangnya ini tidak muncul untuk membuat koneksi "live-linked" ke MS Access db karena ketika proyek berikutnya dibuka, QGIS bingung ("tidak dapat membuka satu atau lebih lapisan proyek"). Namun, solusi untuk ini adalah membuat kueri XML yang telah ditentukan sebelumnya yang dapat dipilih pengguna.
Jadi, meskipun bukan solusi yang sempurna, ini adalah satu langkah lebih baik daripada mengekspor ke CSV. Di masa depan saya pikir akan bagus untuk melihat plugin Teks Dibatasi diperluas untuk menerima koneksi ODBC untuk tujuan ini.
sumber
pendekatan alternatif adalah memindahkan data ke postgis. Anda dapat membaca file csv secara langsung dengan perintah copy postgresql. maka Anda dapat membuat poin dari bidang-xy.
maka jika Anda ingin menggunakan beberapa laporan atau fungsi lain dalam akses Anda dapat terhubung ke postgis dari akses.
manfaatnya adalah Anda meletakkan data spasial di tempatnya, dalam database spasial dan kemudian menggunakan odbc kembali untuk mengakses untuk menangani data non-spasial jika Anda karena alasan tertentu masih ingin melihat data Anda dalam akses.
ada tutorial yang bagus untuk postgis / postgresql untuk mengakses koneksi di postgresonline.com. tutorial tentang menerapkan ke postgis / postgresql dapat Anda temukan oleh penulis yang sama di bostongis.org
/ Nicklas
sumber
Ada beberapa produk konversi yang dapat mengkonversi data akses ms ke postgres atau SQLite dan kembali lagi. Memindahkan data dengan sangat cepat dari satu sisi ke sisi lain. Menggunakan salah satu aplikasi ini dapat memberi Anda opsi untuk menjalankan QGIS pada snapshot data.
sumber