QGIS kullanarak ODBC bağlantısı okunuyor mu? [kapalı]


16

İzlediği çeşitli konumlar için X & Y alanları içeren büyük bir MS Access veritabanını yöneten bir iş arkadaşım var. Verileri daha önce CSV'ye aktardık ve konumları çizmek için QGIS Sınırlandırılmış Metin Eklentisini kullandık.

Şimdi, MS Access db'ye bir ODBC bağlantısıyla (CSV'ye dışa aktarmanın aksine) bağlanarak bu verileri doğrudan QGIS'de çizmek istiyoruz.

  1. QGIS, XY konumlarını çizmek için ODBC bağlantısından veri tüketebilir mi?
  2. ODBC bağlantısına "canlı bağlantılı" olabilir, böylece bir proje yeniden açıldığında, katman tüm eski ve yeni eklenen konumları dinamik olarak "yeniden" oluşturur (şekil dosyasına aktarmanın aksine, zaman içinde anlık görüntü oluşturur)?
  3. QGIS içindeki uzamsal tablolara birleştirilebilen tablo şeklinde ODBC bağlantıları oluşturabilir misiniz?

Tüm bunları ArcGIS'de ("XY Verileri Ekle" aracı) yapabilirsiniz, bu nedenle bu yeteneğin QGIS'de mevcut olması harika olurdu. Onun varlığından bahseden hiçbir yer bulamıyorum.

Uzamsal bir veritabanına taşınmayı planlamıyorum. Bir CBS kişisi olarak, evet uzamsal bir veritabanına geçmenin mantıklı olduğunu biliyorum ve evet bu tür verileri yönetmek için PostGIS kullandım. Ancak bunlar şu anda seçenekler değil. Kullanıcı bir CBS üyesi değildir ve olmak istemez ve MS Access'te kendi veritabanını yönetir ve bu değişmez. Ben ve onu CBS dünyasına tekme atıp çığlık atıyorum ve mümkün olduğunca kolaylaştırmak istiyorum. CSV'ye ihracat ile yaşayabilir, sadece MS ACCESS İÇİN ODBC KULLANIMI ve QGIS'te XY verilerini göstermenin daha iyi bir çözüm olduğunu umuyordum .


O zaman benim bildiğim kadarıyla QGIS ile istediğin gibi yapamazsın. CSV içe aktarma işleminin ODBC eşdeğerinde bir kullanım olacağına katılıyorum, ancak her türlü performans için dinamik bir bağlantı yerine bir içe aktarma olması gerekir - tıpkı CSV eklentisi gibi. Bu nedenle, kendiniz desteklemediğiniz / geliştirmediğiniz sürece herhangi bir alım olasılığı yoktur.
MerseyViking

@ MV- Genel olarak size katılıyorum ve puanlarınızı görüyorum. Bununla birlikte, öncelikle verilerini basitçe haritalamak ve verileri analiz etmekle ilgilenmeyen gis olmayan kullanıcılar için, QGIS'in performansı bir sorun kadar önemli olmayacaktır. Verileriyle dinamik, "her zaman canlı" bir bağlantıya sahip olmanın neredeyse kesinlikle performans kaygılarından daha ağır basacağını düşünürdüm (yine bunu GIS olmayan kullanıcılar açısından düşünerek).
RyanKDalton

Benzer bir soruya QGIS 2.4 erişiminde
RyanKDalton

Yanıtlar:


7

Dikkat: Bunu denemedim, bu yüzden doğrudan deneyimi olan herkese boyun eğmeye hazırım.

"Vektör katmanı ekle" iletişim kutusunda ODBC veri kaynağına bağlanabilirsiniz, kaynak türü olarak "veritabanı" yı ve veritabanı türü olarak ODBC'yi seçmeniz yeterlidir. QGIS, OGR için ODBC sürücüsünü kullanır , bu nedenle aynı uyarılar uygulanır - yani GEOMETRY_COLUMNS ve benzeri bir tabloya ihtiyacınız olacaktır, bu nedenle meslektaşınızın muhtemelen veritabanını değiştirmesi gerekecektir.

Access 1.0 sürümünü piyasaya sürüldükten kısa bir süre sonra kullanmadım, ancak uzamsal olarak etkinleştirilmediğinden, muhtemelen bir sorun olarak performans bulacaksınız. Muhtemelen Access'i bırakmayacak ve mekansal olarak etkinleştirilmiş bir veritabanı kullanmaya başlamayacaksınız, çünkü bu ekonomik olarak uygun olmayacak, ancak iş arkadaşınız değişim isteğini hissediyorsa, biraz daha fazlasına gitmenizi şiddetle tavsiye edebilirim güçlü.


@ MV- Bu sahip olmak iyi bir bilgidir. "Vektör katmanı ekle" seçeneği ile tablo verileri ekleyebileceğinizi fark etmedim. Yine de haklısınız, çünkü mekânsal olarak etkinleştirilmediğinden, yine de bir şekilde uzamsal bir biçime dışa aktarmanız gerekir. Ve haklısın, kullanıcı ne bir CBS ne de bir veritabanı olduğu için uzamsal olarak etkinleştirilmiş bir db'ye geçmeyecek. Tehlikeli olmak için yeterli Erişim eğitimine
sahipler

7

QGIS 2'de bulunan yeni "İşleme" araçlarıyla bu biraz daha kolay hale geliyor. Hala veri "canlı bağlantı" için bir yol bulamadıysanız (böylece MS Access tablosundaki değerleri değiştirirseniz, nokta otomatik olarak hareket eder), bu yöntem oldukça iyi çalışıyor gibi görünüyor.

MS Access veritabanınıza ODBC bağlantısının nasıl oluşturulacağı konusunda bu sayfanın (ve elbette blog için @ yıldırım) yorum bölümünde "Christina" ve "Bernd" a kredi verilir:

ODBC Bağlantısı Oluşturma:

Win7, 32 bit için: Kontrol paneline / yönetimsel araçlara / veri kaynaklarına (ODBC) gidin

Win7, 64 bit için: Varsayılan "kontrol paneli / yönetim araçları / veri kaynakları (ODBC)" yerine - 64bit sürümlerinde C: \ Windows \ SysWOW64 \ odbcad32.exe!

  1. Kullanıcı DSN sekmesini tıklayın ve ardından 'ekle'
  2. Microsoft Access Sürücüsü'ne (* mdb) ilerleyin ve 'bitir'i tıklayın
  3. Bağlantıya bir ad verin, ardından veritabanının konumuna göz atmak için 'seç'i seçin, ardından diyalogdan çıkmak için' Tamam'ı tıklayın ve dsn penceresini kapatmak için tekrar tıklayın.

Katmanı QGIS'e yükleyin:

  1. Vektör katmanı eklemek için gidin ve veritabanı seçeneğini seçin.
  2. 'Tür' veritabanının 'ODBC' yazdığından emin olun ve 'yeni'yi tıklayın
  3. Ad kutusuna bağlantı için bir ad yazın
  4. Ev sahibi localhost
  5. Veritabanı adı, 4. adımda oluşturduğunuz dsn'nin adıdır
  6. Diğer tüm kutular boş olmalıdır, ancak 'şifreyi kaydet' kutusunu işaretleyebilirsiniz.
  7. Bağlantıyı test edin ve hataları not edin. Başarılı olduğunda, 'vektör katmanı ekle' iletişim kutusuna dönmek için 'Tamam'ı tıklayın
  8. Bu bağlantıyı açmak için 'aç'ı tıklayın ve şifre istenirse' Tamam'ı tıklayın. Herhangi bir geometriye sahip olmayabileceğini düşünerek katmanınızı (veritabanından tablo) seçin.

XY verilerini Puanlara dönüştürün:

  1. İçindekiler tablosundaki tablo ile "İşleme" -> Araç Kutusu -> Coğrafi algoritmalar -> Vektör -> Oluşturma -> "Tablodan katman katmanı" na gidin.
  2. Formu aşağıda görüldüğü gibi doldurun:

Tablodan Nokta Katmanı


Bu yaklaşımla ilgili sorun yaşıyorsanız, QGIS 2.4 erişim .mdb ekleme hatasını
RyanKDalton

MS erişimini QGIS'e bağlama konusunda yardım için çok teşekkürler. Ben katılmak katmanı olarak ülke üç harf kodları kullanıyorum ve çok güzel çalıştı

Çizgi veya Çokgen içeren bir tablom olsaydı, haritayı nasıl oluşturabilirim?
MichaelR

5

Başka seçenekler varsa hala duymakla ilgilenmeme rağmen, bunun eVis Eklentisi kullanılarak mümkün olduğunu belirten bir mesaj gönderdim .

Belgeler, Veritabanı Bağlantısı bölümünde , statik bir anlık görüntü oluşturmadan veritabanından XY noktası konumları oluşturmak için MS Access veya ODBC bağlantısına nasıl bağlanabileceğinizi açıklar . Basitçe "select * from" yazdım ve eVis, katman adı ve XY alanlarını soran bir iletişim kutusu açtı.

Bu ne yazık ki MS Access db ile "canlı bağlantılı" bir bağlantı oluşturmak gibi görünmüyor çünkü proje bir dahaki sefere QGIS karıştı ("bir veya daha fazla proje katmanı açılamıyor"). Ancak bunun çözümü , kullanıcının seçebileceği önceden tanımlanmış bir XML sorgusu oluşturmaktır .

Bu yüzden mükemmel bir çözüm olmasa da, bu CSV'ye ihracattan bir adım daha iyidir. Gelecekte, bu amaçla ODBC bağlantılarını kabul etmek için Sınırlandırılmış Metin eklentisinin genişlemesini görmek harika olurdu.


Ah! Bunu bilmek gerçekten faydalı. Bazı çemberler içerir, ancak en azından bir kerelik bir kurulum olmalıdır. QGIS'deki görünümü değiştirirseniz verileri yeniden yükler mi? Yoksa sorguyu el ile yeniden çalışana kadar önbelleğe alıyor mu?
MerseyViking

@ MV- Deneme yoluyla anlatabildiğim kadarıyla, eVis QGIS'de önbelleğe alınmış bir katman oluşturuyor gibi görünüyor. Örneğin, katmanı eVis ile yükledikten sonra, kayıtlardan birini Access DB'den sildim, QGIS ekranını yeniledim ve "silinmiş" nokta devam etti. Ancak yeni bir önbellek katmanı oluşturduğumda, silinen nokta görüntülenmedi (beklendiği gibi). Kaydırma ve yakınlaştırmanın önbelleğe alınan katman ekranı üzerinde hiçbir etkisi olmamıştır.
RyanKDalton

4

alternatif bir yaklaşım, verileri postgis'e taşımak olabilir. csv dosyasını postgresql copy-komutuyla doğrudan okuyabilirsiniz. o zaman xy alanlarından noktalar oluşturabilirsiniz.

erişimde bazı raporlar veya başka işlevler kullanmak istiyorsanız erişimden postgis'e bağlanabilirsiniz.

avantajı, uzamsal verileri ait olduğu yere, uzamsal bir veritabanına yerleştirmeniz ve daha sonra verilerinizi erişimde görmek istiyorsanız, sabit olmayan verileri işlemek için odbc'yi geri kullanmaktır.

postgresonline.com'da postgis / postgresql bağlantısına erişmek için harika öğreticiler var. Aynı yazarlar tarafından bostongis.org'da bulabileceğiniz impgorting postgis / postgresql hakkında öğreticiler

/ Nicklas


0

Ms-access verilerini postgres veya SQLite'a dönüştürebilen ve tekrar geri dönüştürebilen birkaç dönüşüm ürünü vardır. Verileri bir taraftan diğerine çok hızlı bir şekilde taşıyın. Bu uygulamalardan birini kullanmak size QGIS'i verilerin anlık görüntüsünde çalıştırma seçeneği verebilir.


1
böyle bir araç önerebilir misiniz?
Jens
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.