Metin etiketlerinin QGIS'deki diğer işaretçilerle çakışmasını engelliyor musunuz?


14

QGIS içinde metin etiketlerinin bir nokta katmanını etiketlemek için kullanılan simgelerle çakışmasını önlemenin bir yolu var mı?

Aşağıda gösterilen örnek haritada iki katman vardır:

  1. Yeni etiketleme motoru kullanılarak etiketlenen yollar katmanı.
  2. Otoyol kalkanları göstermek için svg simgeleri kullanan bir nokta katmanı.

Bunun için tren istasyonu simgelerinin çakışmasını önleyen başka kullanım durumlarım var. Bu örnekte, noktayı hareket ettirebilirim, ancak, metro istasyonu gibi diğer durumlarda, bu uygulanabilir bir çözüm değildir.

Düşündüğüm olası bir çözüm şunları içerir:

  1. Nokta katmanının dbf dosyasına bir sütun ekleme.
  2. Eklenen sütunu Null veya boşlukla doldurma .
  3. Eklenen sütun için QGIS'in [yeni stil] etiketlemesini etkinleştirme.

Bu yol mu yoksa daha iyi bir yöntem var mı?

Örnek Harita

QGIS bilgisi: Mac OS 10.7.4'te 1.7.4 ve yakın zamanda derlenen 1.8 sürümlerini kullanıyorum. Linux ve Windows sürümleri de mevcuttur.


İlerleme Güncellemesi : Yukarıda tarif ettiğim yöntem, işlemde iki değişiklik yapılması gerekmesine rağmen çalışır.

  1. Bunun yerine, bir boşluk karakteri ya da bir yapıştırıcı madde kullanıldığı Null , bir bölünemez boşluk kullanılmalıdır. Bulduğum test sırasında, Null olan alanlar oluşturulmaz ve yalnızca boşluk içeren alanlar Null değerine dönüştürülür . ( Kesintisiz bir alanın nasıl yazılacağı hakkında bilgi için bu Wikipedia sayfasına bakın .)
  2. Katman Etiketleme Ayarları ayarlarken, Gelişmiş sekmesinde, set Yerleştirme için Üzeri Noktası . Ayrıca Önceliği diğer etiketli katmanlardan daha yüksek olacak şekilde ayarlayın.

Kullanılan simgenin boyutuna bağlı olarak, işlerin beklendiği gibi çalışması için bazı deneyler gerekebilir. Duruma bağlı olarak, yazı tipi ağırlığını ve / veya boyutunu artırmaya çalışmak yerine birden çok karakter kullanmak daha kolay olabilir.

Örnek Harita 2

Mac OS 10.7.4'te QGIS 1.7 ve yakın zamanda 1.8 olarak derlenen bir test.


1
Ayrıca kendi sorularınızı da cevaplayabilirsiniz. Çözümünüzü oylamak istiyorum.
underdark

Yanıtlar:


8

Şimdiye kadar sahip olduğum en tutarlı çözüm, yukarıda ortaya koyduğum şeylerde. Bir SHP dosyasının kullanıldığı varsayıldığında, adımlar şunlardır:

  1. Dbf dosyasını LibreOffice, Excel veya QGIS Table Manager eklentisi gibi bir elektronik tablo uygulamasıyla açın.
  2. Tabloya bir sütun ekleyin. Bir veri türü gerekiyorsa, dize kullanın.
  3. Hücreleri kırılmayan bir boşlukla doldurun . Tamamlandığında değişiklikleri kaydedin. ( Kesintisiz bir alanın nasıl yazılacağı hakkında bilgi için bu Wikipedia sayfasına bakın .)
  4. Nokta katmanı için Katman Etiketi Ayarlarını açın. Gelişmiş sekmesinde Yerleşimi Over Point olarak ayarlayın ve Önceliği diğer etiketli katmanlardan daha yüksek olacak şekilde ayarlayın.

2
2.14'te yeni bir sütun eklemenize bile gerek yok, etiket olarak ''
ifadesini

3

Bunun eski olduğunu biliyorum, ancak bu bilgileri içeren tabloya bir "X Koordinatı" ve "Y Koordinatı" (çift kesinlik) sütunu ekleyebilir ve ardından katman özelliklerindeki Etiketler altındaki "Veri Tanımlı Ayarlar" sekmesine gidebilir ve değiştirebilirsiniz. X koordinatı ve Y koordinatı buna göre. Bunu yaptıktan sonra, etiketi taşı düğmesini kullanarak etiketi serbestçe taşıyabilirsiniz.



0

Etiketin ofsetini deneyebilirsiniz.

2 mm'ye ayarlarsam etiket konumlandırmanın daha dinamik olmasını sağlar.


Hayır, bunu yapmaya kalkışmadım. Etiket konumunu değiştirmememin ana nedeni, haritanın diğer alanlarında (resimde değil), yol ağının oldukça yoğun olmasıdır. Yukarıdaki örnekte, simgeyi yaklaşık 2 mm (herhangi bir yönde) hareket ettirmek sorunu düzeltir. Ancak haritanın diğer kısımlarında, simgeyi başka bir etikete daha da derinlemesine itebilir.
DMan

Bir deneyin, etiket muhtemelen yeni bir dinamik konuma kayacaktır. Belki istediğin şey değil, ama öğrenmenin tek yolu denemektir. Kullandığım seçenek, yeni etiket aracının gelişmiş sekmesinde yer alıyor (bu, katmanın özellikler iletişim kutusundan değil araç çubuğunda bulunur).
Willy
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.