Harita stilleri

Sözlük düzenleme, Proje düzenleme katman seçim ekranlarından hazır harita çizim sitili seçilip kullanılabilmektedir.

GEODI haritası çizim stilleri css ile ayarlanmaktadır. %AppData%Dece/App/GEODI/SystemStyles veya uygulama yanına SystemStyles klasörüne atılacak css dosyası ile yeni stil tanımı yapılabilir. Katmana özel stil zorlamaları yapılabilir.

Yapılacak CSS tanımları basamaklı mimariyi destekler. Bir etiket bir tanımdan kırmızı renk alıp başka bir tanımdan mavi arkaplan alabilir.



Stil tanımları

Etiket, nokta,çizgi, alan, GDI ayarları için ayrı tanımlamalar yapılmasını sağlayacak özellikler kullanılabilir.

Etiken düzenlemeleri için label-... , Nokta düzenlemeleri için point-.... , Alan düzenlemeleri için polygon-..., Çizgi düzenlemeleri için line-...., GDI ayarları için map-... tanımları kullanılabilir.

Tanımlar doğrudan kullanılamaz. Bir blok içerisinde etkliyeceği hedef  veya sınıf adı ile kullanılabilitr.

Güncel tüm css özellikleri için buraya tıklayınız. Dokümanda açıklama alanlarında kullanılabilecek değerler ve değer tipi belirtilmiştir.

Stil bloğu tanımlama

Bloklar .[SınıfAdı] { .. } , #[Hedef] {..}, #[TypeName] {..} veya  layer{...} şeklinde tanımlanabilir.  "layer" isimli bloktaki tanım tüm geometrileri etkiler.

Bir katmanı etkileyen bloklar için devralma sırası "layer" → [TypeName] → #[LayerId] → #[LayerDisplayName] → .[KatmandaTanımlıSınıfAdı] → .[GeometrideTanımlıSınıfAdı] şeklindedir.

  • layer : Tüm katmanları etkileyen tanımdır. HTML css tanımlarında tagName tanımları gibi düşünülebilir.
  • [TypeName] :  Sadece belirtilen nesne tipteki katmanları etkiler.  Tüm kullanıcı sözlüklerini etkileyecek bir tanım yapmak için GeodiDictionary { .. } şeklinde bir blok tanımı yapılabilir. Güncel tüm tiplerin listesi için tıklayınız.
  • #[LayerId] : Sadece Belirtilen ID'ye sahip katmanları etkiler. Sadece Dünya Kentleri sözlüğünü etkileyecek bir tanım yapmak için GeodiDictionary_462a0511-06ba-4383-9335-0b8c29bd087c { .. } şeklinde bir blok tanımı yapılabilir. Projede kullanılan tüm Katman ID değerlerine tarayıcı konsolu üzerinden CurrentQueryContainer.CurrentWSInfo.Recognizers; ifadesini yazıp ulaşabilirsiniz.
  • #[LayerDisplayName] : Sadece belirtilen isme sahip katmanı etkiler. Katman çoklu dilde vermişseniz blok adı çoklu dil için kullandığınız sözdizimi ile verilmeidir.
  • .[KatmandaTanımlıSınıfAdı] : Katman için sözlük düzenleme veya proje düzenleme arayüzlerinden ismi seçilen katmanları etkiler. CSS tanımında istenilen isimlendirme yapılabilir. CSS içeriklere eklenen tanım düzenleme arayüzlerinde görülecektir.
  •  .[GeometrideTanımlıSınıfAdı] : Sadece Katman/Tanıyıcı düzeyinde özel olarak belirtilmiş geometri tanımlarını etkiler. Bazı tanıyıcı düzenleme arayüzlerinde hangi tip geometriye hangi sınıf tanımının ekleneceği sorulmaktadır.

Bir geometri çizim sırasında listedeki birden fazla tanımdan etkileniyorsa sıralamada son tanımda bulunan özellik geçerli olur. Daha üst bir tanımın her zaman geçerli olabilmesi için tanım içeriğinde !important ifadesi kullanılabilir.


Devralma Örneği
/* 
Bu örnekte MyClass sınıfı seçilmiş MyLayer isimli bir katman için etkietler .
- Kırmızı renkte çizilir. "." ile tanımlı sınıf adı devralma sırasında sondadır.
- Siyah zemin kullanılır. Zemini Gri yapmaya çalışan "." ile tanımlı sınıf adı devralma sırasında sonda olsa da devralma sırasında daha önce gelen "#" katman tanımında !important kullanılmıştır.
- Yazı kenarları beyazdır. "#" katman tanımından Halo tanımı devralınmıştır.

*/
.MyCLass {
	label-Color:Red;
	label-BackgroundColor:Gray;
}
layer {
	label-Color:Blue;
}
#MyLayer {
	label-Halo:White;
	label-BackgroundColor:Black !important;
}

Makro kullanımı

Stil değerleri için makro kullanılabilir. Sözdizimi kuralları için Makrolar sayfasını inceleyebilirsiniz. Stil değerlerinde [  ] karakterlerinin kullanılmamalıdır.

Devralma Örneği
.MyCLass_A {
	point-Color:=context.GetColor(context.ID);
}
.MyClass_B {
    point-Color:=Color.FromArgb(200,(int)Math.Abs((context.Geometry.Centroid.Y/10000)%255),(int)Math.Abs((context.Geometry.Centroid.X/10000)%255),(int)Math.Abs((context.Geometry.Centroid.X/10000)%255));
}
.MyClass_C {
    label-Enable:=c.MapScale>1000;
}