Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

GEODI haritası çizim stilleri css ile ayarlanmaktadır. %AppData%Dece 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 arka plan alabilir.

Table of Contents

Stil tanımları

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

Etiken Etiket 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 etkiyeceği hedef  veya sınıf adı ile kullanılabilitrkullanılabilir.

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.

...

  • 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 verilmeidirverilmelidir.

  • .[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

Code Block
languagecss
/* 
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
Code Block
languagecss
.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;
}

Sözlük Elemanına (Keyword) Özel Stil Tanımlama

  • Sözlükteki her bir keyword için ayrı stil tanımlamak mümkün. KW ve renk bilgisinin yer aldığı bir veritabanı (MS Access, Excel daha kolay olabilir) oluşturulup aşağıdaki örnekteki gibi stil tanımlanır. Parametrelerle ilgili bilgi API referansında yer alıyor.

Code Block
line-Color:=System.Drawing.ColorTranslator.FromHtml(c["db"].GetValueFromCache(@"C:\GEODI_DATA\Ulaşım\Ordu Güzergahlar.xlsx","Güzergahlar$","Renk","hat_adi",c.DisplayName) as string);

Sembol Kullanma

  • Nokta tipindeki geometrilerin haritada bir ikon/sembol ile görünmesi için aşağıdaki gibi bir tanım kullanılır. Boyutu ve rengi değiştirilebilir. Örnekteki %App% ifadesi GEODI'nin kurulduğu dizini belirtir. Projeye özel yapılan bu tanımlar ve kullanılan ikon dosyaları bir modül yapılarak ilgili yere yedeklenmelidir.

Code Block
point-SymbolFile:%App%/GUI/mapimage/restoran.png;
Code Block
point-SymbolScale:1;

Sadece istenen tanıyıcıda çalışacak stil örneği

  • Çalışmasını istediğiniz tanıyıcının id'sini shift+ctrl ile açılan menüden → layers kısmından öğrenebilirsiniz.

Code Block
#Default_GeometryRecognizer {
	label-MaxVisible:0;
}

GEODI 360 GPS Geometrileri stilleri

  • Bütün GEODI de harita üzerindeki GEODI 360 özelliği ile gelen GPS geometrilerinin stillerini değiştirmek için .GPS isimli genel bir class kullanılabilir. 

  • Proje bazlı yapmak için oluşturduğunuz still class'ını proje düzenleme ekranından Coğrafi Koordinat Tanıyıcı'nın stil arayüzünden seçebilirsiniz.

  • Harita üzerindeki notların stillerini değiştirmek için ise .Note class'ını kullanıyoruz.

Code Block
.GPS {
line-Color:Red;
line-Width:1;
}
----------
.Note {
label-Enable:False;
}

Coğrafi Koordinat Tanıyıcı ve Coğrafi Sınır Tanıyıcı için özel stil tanımlamaları 

Code Block
- Coğrafi Koordinat Tanıyıcı nın tanıdığı ve 7fa0e39f-6a8b-7dab-a7bb-b447fbc9accc id li kaynağa özel stil tanımlama. Bunlar özel tanımlar olduğu için Hide:true; ile bunların stil arayüzüne gelmemesi sağlanabilir.
GeometryRecognizer.enm_7fa0e39f-6a8b-7dab-a7bb-b447fbc9accc {
point-Color:Blue !important;
Hide:true;
}
- Coğrafi Koordinat Tanıycı nın pdf içeriklerden tanıdığı noktalara özel stil tanımlama. Bu örnek diğer içerik türleri için de yapılabilir. Sınır tanıyıcı için BnC_pdf şeklinde kullanılmalıdır.
BnC_OfficeDocs , BnC_Web_Social şeklinde içerik gruplarına uygulanabilir.
GeometryRecognizer.Geo_pdf {
point-Color:Black !important;
}

Info
  • Coğrafi Koordinat Tanıyıcı için

    • enm_<EnumereatorId> : Örnek enm__FolderContentReaderEnumarator_1bb24a19-eec6-4145-8464-edd8252c35c4

    • GeoC_<ContentCategory> : Örnek : GeoC_CAD, GeoC_OfficeDocs , GeoC_Web_Social, GeoC_Mail, GeoC_Image ...

    • Geo_<ContentExtension> : Örnek Geo_jpeg, Geo_xls

  • Coğrafi Tablo Tanıyıcı için

    • enm_<EnumereatorId> : Örnek enm__FolderContentReaderEnumarator_1bb24a19-eec6-4145-8464-edd8252c35c4

    • BnC_<ContentCategory> : (Zaten vardı) Örnek : BnC_CAD, BnC_OfficeDocs , BnC_Web_Social, BnC_Mail, BnC_Image ...

    • Bn_<ContentExtension> : (Zaten vardı) Örnek Bn_jpeg, Bn_ncz

Bu stiller için örnek → Coğrafi koordinat tanıyıcı uzantısı tweet olan içerikler için özel stil.

Code Block
.Geo_tweet {
	point-SymbolFile:%App%/GUI/icons/Layer/twitter24.png;

}

Geometrilerin Harita Ölçeğine göre görünmesi için

C:\Program Files\Dece Software\GEODI\SystemStyles\Scale_Geom.css ve C:\Program Files\Dece Software\GEODI\SystemStyles\Scale_Label.css dosyaları kullanabilirsiniz. Bunlar stil seçme arayüzüne gelecektir. İlgili katman/tanıyıcı stillerine uygulayarak ölçeğe göre görünmesini sağlayabilirsiniz.