UMN-mapserver'da bir katmanın yalnızca bazı sınıflarını nasıl gösterebilirim?


9

Harita sunucusunda bir şekil katmanı görüyorum. Şimdi bu katmanın sadece bazı sınıfları için bazı istekler yapmak istiyorum. Örneğin, sadece su sınıfları için ve daha sonra sadece odun sınıfları için bir istek istiyorum. Bunu harita sunucusu ile gerçekleştirebilir miyim?

Yanıtlar:


7

İşte bunu yapmanın başka bir yolu. Bu şekilde her sınıfta ifadeleri olan bir katman kullanılmalıdır. Bu şekilde yapmak biraz daha 'pahalı' çünkü mantıklı ifadeler içeriyor, ancak gerçekten yüksek yük durumlarına çarpmadığınız sürece farkı asla fark edemezsiniz.

Her sınıfın iki bölümlü bir ifadesi vardır. Özelliklerin çizilebilmesi için ifadenin her iki bölümünün de doğru olması gerekir. İfadenin ilk kısmı, şekil dosyanızdaki bir özniteliğe göre bu sınıfa girmesi gereken özellikleri seçer. İfadenin ikinci kısmı, url'den geçirilen bir değişkenin değerini değerlendirir. URL'nizde değişkene ne ad verdiğiniz önemli değildir ('katman' gibi ayrılmış kelimeler kullanmayın), ifadenizdeki değişken adıyla eşleşmelidir.

İşte bazı örnek katmanlar:

LAYER
  NAME "watersheds"
  STATUS DEFAULT
  DATA 'majclip'
  TYPE POLYGON
    CLASS
       NAME "water"
       EXPRESSION ([MAJOR] < 42 AND '%wanted%' = 'water')
       STYLE
          COLOR 0 0 255
       END
    END
    CLASS
       NAME "wood"
       EXPRESSION ([MAJOR] >= 42 AND '%wanted%' = 'wood')
       STYLE
          COLOR 0 255 0
       END
    END
END

Yalnızca su özelliklerini çizmek için şu URL isteğini kullanırsınız: http: //localhost/cgi-bin/mapserv.exe? Map = / ms4w / apps / mymapfile.map & mode = map & wanted = wood

Bu, hedefinize ulaşmanın üçüncü geçerli yolu olduğundan, gerçekten hedeflerinizin ne olduğunu düşünmek istersiniz. Verileriniz sık sık değişiyorsa, bu seçenekle gitmek isteyebilirsiniz. Verileriniz sık sık değişmezse, kişisel olarak iki katmanla giderdim. Performans iyileştirmesi halinde şekil dosyasını arazi kullanım türüne göre birden fazla şekil dosyasına bölebilirim. (Katman filtreleri oldukça verimlidir). Web eşleme ile verilerinizi ne kadar çok optimize ederseniz o kadar iyi olur.


7

Sizin durumunuzda biri ahşap, diğeri su olmak üzere iki katman olmalıdır. Aynı şekil dosyasını kullanarak iki katmanınız olabilir.

Ardından, LAYERS parametresi tarafından istekte doğrudan görüntülenecek katmanları seçebilirsiniz. Sınıflar, verilerin yalnızca farklı bölümlerini temsil eder (örneğin, bu katmanlardaki verilerin nasıl oluşturulması gerektiği).


4

Gerçekten, gerçekten hepsine tek bir katmanda ihtiyacınız varsa, bunu başarmak için Adlandırılmış Stiller'i kullanabilirsiniz. Daha fazla ayrıntı için buraya bakın. Bununla birlikte, Peter'ın çoklu katman önerisi, birçok yönden çok daha basit bir yaklaşımdır.

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.