QGIS kullanarak oluşturulan satırları harita dışında gösteriliyor mu?


12

Aşağıdaki ifadeyi kullanarak QGIS geometri üreteci kullanarak bir OD akış haritası çizdim:

make_line( centroid( $geometry ),
centroid( geometry( get_feature( 'Layer2', 'Attribute1', attribute(
           $currentfeature, 'Attribute2') ) ) ) )

Niteliklere göre satırlarımın genişliğini tanımlayarak her şey yolunda gitti.

Ancak "göbeği" yakınlaştırdığımda, harita tuvali dışındaki yerlere bağlı çizgiler görünmüyor. Sanırım çünkü özellikler haritada görünmüyor.

Hem "Geometri üreteci" hem de "Çizgi" seviyelerinde, gelişmiş menüde "Tuval boyutuna klips özellikleri" seçeneğinin işaretini kaldırmaya çalıştım, ancak hala görünmüyor.

Hub üzerinde yakınlaştırıldığında

Hareketsiz olduğunda

Hub üzerinde yakınlaştırılmış olsa bile tüm satırlarımın görünmesini istiyorum.


Bu yardımcı olmayacak ... ama aynı sorunu Underdark'ın akış haritalama yaklaşımıyla da alıyorum. Yoğun geometrinin oluşturulma şekli hakkında bir şey olmalı ... sadece öneri yerel seviye haritasının nitelik genişliği ile oynamaktır ... genişlikleri daha küçük yapmak mı?
Andrew Tice

Adımlarınızı çoğaltabilmek ve bir yanıt almaya çalışabilmek için verilerinizi (shp ...) yükleyebilirsiniz.
César Arquero

1
Şekil dosyası buradan geliyor: IGN ve birleştirdiği tablo INSEE
mamouthautapis

Çizgiyi bölümlere ayırmak, harita üzerinde görünmesini sağlamak için bir kesmek olabilir, eğer çizgiler sadece ib gösteriliyorsa, her iki uç da harita boyutuna yakındır. Çim aracı 'v.split.length' belki de işi yapar.
Julian

1
Bu yaşadığım problemle aynı mı? gerçek noktalara göre kuzey. Çalışır - ancak yalnızca orijinal noktaların harita tuvalinde olması için uzaklaştırıldığında. Oluşturulan noktalar kümesini yakınlaştırır büyütmez (gerçek nokta konumlarını tuval dışına taşımak) oluşturulan noktalar kaybolur. (QGIS 2.14)
Rostranimin

Yanıtlar:


2

Buradaki sorun, "burada bir çizgi var" diyen gerçek bir veri olmamasıdır. İfadeniz Katman Stil Oluşturma'nın bir parçasıdır ve oluşturma işleminde yalnızca iki geçerli nokta da oluşturulduğunda karşılaşılır.

Vektör analiz araçları altında işleme araç kutusunda bulunan En yakın hub aracına Uzaklık aracını kullanmayı deneyin . Konuşmacılarınız için belirli çokgenleri seçtiğinizi ve çizgileri diğer özelliklere göre şekillendirdiğinizi not ediyorum. Bu mümkündür, ancak hazırlanmak için birkaç şey yapmanız gerekir. Neyse ki, çokgen girişler seçildiğinde araç otomatik olarak sentroidleri kullanır.

  1. Vektör seçim araçları > Özniteliğe göre ayıkla
    • Giriş katmanı: 'LAYER_1'
    • Seçim özelliği: 'ATTRIBUTE_1'
    • Operatör: =
    • Değer: 'hub poligonuna ilişkin değer'
    • Çıkartıldı (özellik): 'HUB'

  2. Vektör seçim araçları > Özniteliğe göre ayıkla
    • Giriş katmanı: 'LAYER_1'
    • Seçim özelliği: 'ATTRIBUTE_2'
    • Operatör: gerektiği gibi seçilir
    • Değer: 'konuşulan çokgenleri ifade eden değerler'
    • Çıkartıldı (özellik): 'SPOKES'

  3. Vektör analiz araçları > En yakın hub'a uzaklık
    • Kaynak noktaları katmanı: 'SPOKES'
    • Hedef hub katmanı: 'HUB'
    • Hub katman adı özniteliği: giriş katmanında birden fazla hub belirtilmesi durumunda, seçilen özniteliğe dayalı olarak çıktıda bir "Hub Adı" alanı oluşturur
    • Çıktı şekli tipi: Hattan göbeğe
    • Ölçüm birimi: Metre
    • Hub mesafesi: 'OUTPUT_LAYER_NAME'

Sonuçta elde edilen çıktı 'SPOKES' katman girişinin tüm niteliklerini korur, bu nedenle çizgi şekillendirmesi için gereken nitelikler mevcut olacaktır. Kendi vektör katmanı olarak, çizgiler her iki uç noktasının görünürlüğünden bağımsız olarak tüm zoom seviyelerinde görünür kalacaktır.

Grafiksel Modelleyici'den memnunsanız, çalışma alanınızı gereksiz katmanlarla karıştırmamak için bu adımları tek bir işlemde bile oluşturabilirsiniz.


3

Aşağıdaki geçici çözümü bulundu: Çizgileri görüntülemek için geometri oluşturucu yerine ek bir sanal katman kullanın .

Sanal katmanın tanımı:

select m.FID, make_line(.....) as geometry from my_layer m

(orijinal geometri kullanılarak referans verilebilir m.geometry)

Katmanım düzenlenirken sanal katmanın yenilenmesini sağlamak için katman özelliklerine gidin | ve varsayılan olarak gri renkte olan my_layer öğesinin işaretli olduğundan emin olun.

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.