QGIS kullanarak şekil dosyası alanından farklı değerler listesi mi alıyorsunuz?


18

Ben sorgu diyalog bir nerede yan tümce belirterek özellikleri filtre uygulayabilirsiniz bir shapefile var. Fx 'city_name' adında bir alanım var ve 'London_name = "London" ifadesini belirterek yalnızca Londra görüntülenir. Şimdi ne yapmak istiyorum 'city_name' tüm değerleri öznitelik tablosundan getirmektir.

Bunun gibi bir şey:

select distinct city_name from [attribute table]

QGIS'de SQL ile ilgili çeşitli araçlar buldum ve farklı Eklentilere de hızlı bir şekilde baktım. Ama bir veritabanına veya tablo adına bağlanmada başarısız oldum ... bu durumda hangi veritabanı veya hangi tablo?

Sonunda sonuç listesini vermek ve daha sonraki işlemler için kullanmak istiyorum.

QGIS 1.8 kullanıyorum.

Yanıtlar:


32

Güncelleme yanıtı (QGIS Sürümü> = 2.14)

QGIS 2.14'ten beri , sanal katmanları kullanarak herhangi bir yüklü vektör katmanında run SQL deyimlerini kullanabilirsiniz .

  1. Katmanın QGIS'de yüklü olmasını sağlamak için Katman> Katman Ekle> Sanal Katman Ekle / Düzenle'ye gidin ;
  2. Sanal katman oluştur iletişim kutusunda, Sorgu alanına SQL ifadenizi girin. Gibi bir şey:

    SELECT DISTINCT şehir_adı FROM katman_adı

  3. Geometri seti için Geometri Yok

  4. Tamam'ı tıkladığınızda QGIS içinde bir tablo istenen benzersiz değerlerle yüklenir.

Not: city_name sütununa yeni değerler eklenirse bu tablo güncellenir.

Eski yanıt (QGIS Sürüm <2.14)

İstediğinizi yapmak için birkaç seçeneğiniz var.

  1. Shapefile'ınızı bir Spatialite veya Postgis veritabanına içe aktarın ve ardından tablonuzu tam SQL ifadeleri kullanarak sorgulayabilirsiniz;
  2. Şekil dosyalarınızı "city_name" alanını kullanarak çözmek için Erit aracını (Vektör> Coğrafi İşleme Araçları> Erit) kullanın. Garip bir yöntem olsa da, sonuçta elde edilen shapefile dosyasının dbf dosyası ihtiyacınız olan listeyi sağlayacaktır;
  3. Grup istatistikleri eklentisine (1.6) bir göz atın , sınıflandırma alanı olarak "city_name" kullanabilirsiniz ve hesapla tuşuna basın. Her şehirle ilgili bazı istatistikleri hesaplar, ardından sonucu kopyalayabilir ve şehir listesini çıkarabilirsiniz.

Vektör> Analiz Araçları'nda , bir kişinin bu görev için tam olarak ihtiyaç duyduğu bir liste Benzersiz Değerler aracı olduğunu fark ettim . Çok kolay ... geçici çözüm yok ve Eklentilere gerek yok.


6

QGIS DB Manager'ı kullanın ve 'sanal katmanlar' aracılığıyla şekil dosyanıza erişin

Daha sonra SQL penceresini kullanabilir ve sorgunuzu yazabilirsiniz:

resim açıklamasını buraya girin


1
Bu şimdi (QGIS 2.14+) doğru cevaptır.
Alexandre Neto

0

Şunun gibi bir şey eklemeyi deneyin:

where city_name is NOT NULL or not equal to NULL

Buradan bakmayı
nigellaw

1
bu, QGIS'in bir şehir_adı ile tüm özellikleri görüntülemesine neden olur. ancak city_name değerlerini vermek istiyorum.
Raffael

-1

QGIS'de sorgu oluşturucu kullanın, sorgu oluşturucudaki alanlardaki şehir adı alanına gidin. Değerlere gidin, hepsini ekleyin. Boş değerleri silin.

Tam ad listesine sahip olana ve komut dosyasını çalıştırana kadar city name = "london" ve city name = "paris" gibi bir komut dosyası oluşturun. Şimdi tüm şehir isimleri seçildi. Seçilen bir şekil dosyası olarak dışa aktarabilir ve bir postgresql veritabanına aktarabilirsiniz.

QGIS için postgresql arka ucu kullanmak için, geoserver, postgresql ve postgresql'de postgis özellikli bir veritabanıyla postgresql yığını yükleyin. QGIS'i sunucuya bağlamanız gerekir. Biraz oynayın ve anlayacaksınız.

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.