Esri Silverlight Api Özellikleri – Davranışlar ve Eylemler

29 Oca

Behaviors & Actions

Behaviors & Actions konusu altında işlenen API özellikleri harita(Map control) nesnesinin davranışlarını ve eylemlerini kapsamaktadır. Bu yazıdaki örnek uygulamalar, versiyon 3.0 üzerinde yapılmıştır.

Constraint Extent Behavior

ConstraintExtentBehavior adındaki davranış belirleyicisi, haritanın belli bir koordinat sınırının dışına çıkmasını engelleyici özelliğe sahiptir. Bu davranış bir harita nesnesine uygulandığında, düzlem üzerindeki harita, belirlenen sınırların dışına kaydırılamaz.

Örnek uygulama.

Kullanımı:

constraintExtentBehavior

Örnek uygulamada harita sınırları Map kontrolüne eklenen ConstraintExtentBehavior davranışının ConstraintExtent ayarı “-15000000,2000000,-7000000,8000000” değerleri ile sınırlandırılmıştır. Bu sınırlandırma ile harita artık bu sınırların dışına kaydırılamamaktadır.

Maintain Extent Behavior

MaintainExtentBehavior davranış belirleyicisi, haritanın (Map control) yeniden boyutlandırılması (resize) sırasında mevcut Extent’i korur.

Örnek uygulama.

Kullanımı:

maintainExtentBehavior

Örnek uygulamayı incelerken internet tarayıcınızı (browser) büyütüp küçülttüğünüzde harita sınırlarının korunduğunu görebilirsiniz.

Show Coordinates Behavior

ShowCoordinatesBehavior davranış belirleyici tip, mouse imlecinin gezindiği koordinatları gösteren bir davranışa sahiptir.

Örnek uygulama.

Kullanımı:

ShowCoordinatesBehavior

Örnek uygulamayı incelediğinizde mouse imleci harita üzerinde gezindikçe, imlecin bulunduğu koordinatlar, imlecin yanında gözükecektir.

Eylemler (Actions)

Esri Silverlight API içerisinde tanımlanmış olan eylemler (Actions) sayesinde çizim, mekansal sorgu, ölçümler gibi birçok işlemlerin sonucunu harita üzerine yansıtabilmektedir. Eylemler sayesinde grafiksel bir katmana çizim yapma mümkündür. Ayrıca katmanlar üzerinde de eylemler tanımlamak mümkündür. Aşağıda bir örnek uygulama linki verilmiştir.

Örnek Uygulama.

Kullanımı:

GraphicsAction

Bu örnek uygulamada kırmızı çizme eylemi bir butona atanmıştır. Butona tıklandığında harita üzerine mouse yardımıyla kırmızı çizgiler çizilebiliyoruz. GraphicsLayer üzerinde çizim işlemi gerçekleşmektedir.

API Version 3.0 içerisindeki eylemler şunlardır: ClearGraphicsAction, MeasureAction, PanToAction, RedlineAction, SpatialQueryAction, ToggleLayerAction, UpdateFeatureLayerAction, ZoomToAction, ZoomToFullExtenAction, ZoomToLayerAction şeklindedir. Api versiyonuna göre yeni eylemler eklenmiş olabilir.

Grafiksel Eylemler (Graphics Actions)

  • RedLineAction: Harita üzerine çizgi çizme eylemini gerçekleştirir.
  • SpatialQueryAction: Mekansal sorguların sonucunu yapıp grafik katmanına çizdirir.
  • ClearGraphicsAction: Bu eylem ile harita üzerinde belirlenen grafik katmanını temizlenir.

Katmansal Eylemler (Layer Actions)

  • ToggleLayerAction: Belirlenen bir katmanın görünebilirliğini değiştirir.
  • UpdateFeatureLayerAction: Belirlenen FeatureLayer katmanını günceller.
  • ZoomToLayerAction: Belirlenen bir katmana yakınlaştırır.

Araçlar (Utility Action)

  • MeasureAction: Harita üzerinde ölçüm işlemlerini yapmak için bu araç kullanılır. Uzunluk, alan, dairesel yarıçap gibi ölçümler yapmak mümkündür.

Navigasyonel Eylemler (NavigationActions)

  • PanToAction: Haritada belirlenen bir geometrinin olduğu yere haritayı hizalar.
  • ZoomToAction: Haritada belirlenen bir geometriye veya koordinatı yakınlaştırır.
  • ZoomToFullExtent: Haritanın tamamının görüntüsünü verir.

Proje – İKABİS (İçmesuyu Kananizasyon ve Altyapı Bilgi Sistemi)

13 Kas

Kocaeli Büyükşehir Belediyesi İSU Genel Müdürlüğünde hazırlanan İKABİS (v.1.0) projesi İSU bünyesinde yayına açılmıştır.

Projenin amacı, imalatı tamamlanan altyapıların Coğrafi Bilgi Sistemi(CBS) standartlarına getirilmiş sayısal bilgilerinin WEB ortamından yayına sunulmasıdır.

Yayına açılan altyapı bilgileri, koordinatlı uydu fotoğrafı üzerinde görüntülenebilmektedir. Bu sayede hangi altyapı bilgisinin nerede olduğu kolayca bulunabilmektedir.

Yayına açılan altyapı bilgileri şu şeklidedir.

  • İçmesuyu hatları
  • Kanalizasyon hatları
  • Yağmursuyu hatları
  • Su depoları
  • Arıtma tesisleri
  • Terfi merkezleri
  • Abone noktaları
  • Dere Islahları
  • Vanalar
  • Yangın muslukları
  • Diğer donatı bilgileri

Ben bu projenin veritabanı standartlarının geliştirilmesi ve WEB yazılımının hazırlanmasından sorumluydum. Harita mühendisi arkadaşlarım Azize KOÇ, Yusuf Ziya DEMİRCİ ve Abdullah Talha DERİCİ de harita verilerinin hazrılanması, altyapıların sayısallaştırılması, CBS’ye hazır halegetirilmesi ve ArcGIS server’da yayına açılması sürecinde  görev almışlardır. 6 ay gibi bir sürenin sonunda projeyi başrıyla hayata geçirmiş bulunuyoruz.

Projeyle ilgili bazı ekran görüntüleri şu şeklidedir.

İKABİS – Altyapı görüntüsü
İKABİS – Depo sorgu görüntüsü

Projenin altyapısın oluşturan teknolojiler ise şu şeklide:

  • CAD Programları (Altyapıların çizimi)
  • ArcGIS (CAD verilerinin CBS formatına dönüştürülmesi)
  • ArcGIS Server (Map service yayını)
  • Oracle database (ArcSDE)
  • Esri Silverlight API (Web Yazılımı)

Uygulamanın sonucunda bir WEB yazılımı ortaya çıkmıştır. Bu WEB yazılımının arkasında iyi bir ekip çalışması olduğu görünmektedir. Harita çalışmasından sistem mimarisine, veritabanından yazılım geliştirmeye kadar değişik süreçler iç içedir.

Bir başka yazıda tekrar görüşmek dileğiyle.

Coğrafi Bilgi Sistemleri (CBS) Nedir ?

30 Tem

Coğrafi Bilgi Sistemleri (CBS), teknolojinin birçok dalının bir araya gelerek coğrafi veri üreten kurum ve kuruluşlara, veri üzerinde tasarım ve analiz imkanı sağlayan bir yapıdır. Verinin şekillendirilip anlamlı hale gelmesiyle kurum ve kuruluşlar, coğrafi verilerle de artık stratejik planlarını rahatça yapabilecek hale gelmektedirler.

Kullanım alanları

Ülkemizde CBS işlerinin devlet eliyle Ulusal Coğrafi Bilgi Sisteminin oluşuturlması, kontrolü ve yürütülmesi amacıyla 2011 yılında Coğrafi Bilgi Sistemleri Genel Müdürlüğü kurulmuştur. Bu da devlet olarak işin önemini benimsediğimizi ortaya çıkarmıştır.

İşin idari boyutundan ziyade, teknik boyutu hakkında konuşmaya devam edelim.

CBS, teknik olarak birden fazla alana yayılmış şeklidedir.

  • Haritacılık. (CAD, ArcGIS, ArcMAP,diğer yazılımlar)
  • Sistem (Harita yayınlarının sunumu, Sunucuların optimizasyonu)
  • Veritabanı (Oracle, MsSQL,…)
  • Yazılım (Silverlight, Java Flex, Javascript)

Yani tek başına CBS diye birşey yoktur. CBS uygulamalarının hayat bulabilmesi için sağlam bir ekibin oluşturulması şarttır.

CBS uygulamalarını şu şeklide sıralayabiliriz: Kent Bilgi Sistemi, Orman Bilgi Sistemi, Karayolları Bilgi Sistemi, Arazi Bilgi Sistemi, Tapu ve Kadastro Bilgi Sistemi, Lojistik Bilgi Sistemi, İç Güvenlik Bilgi Sistemi, Araç İzleme Bilgi Sistemi, Trafik Bilgi Sistemi, Kampüs Bilgi Sistemi, Deprem Bilgi Sistemi, Harita Bilgi Sistemi, vb. şekilde adlandırılırlar.

CBS uygulamalarının kullanım alanlarını da şu şekilde sıralayabiliriz: kaynak yönetimi, varlık yönetimi,alt yapılar (doğalgaz, elektrik, su), kentsel planlama, madencilik, askeri alanlar, trafik ve karayolları, ticaret… şeklinde sıralayabiliriz.

CBS, metinsel veriler yerine coğrafi verilerler çalışan bir sistemdir. Örneğin deprem inceleme merkezleri ölçekler vasıtasıyla deprem olan yerlerin koordinatlarını alarak, şu saatte şu koordinatta deprem olmuştur, şeklinde bir liste tutarlar. Bu, kağıt üzerinde metinsel bir veridir. CBS sayesinde bu koordinatlı metinsel veriler, harita üzerinde de görünür hale gelektedir. Aynı şekilde doğalgaz, su hatları, yollar gibi stratejik önemdeki veriler de tek noktadan yönetilebilir hale gelmektedir. Örneğin bir caddedeki doğalgaz kesintisinden etkilenecek vatandaşların listesi alınıp, bu kişilere otomatik mail göndererek veya otomatik arama yaparak and kayıtlarıyla bilgiler vermek mümkündür.

Yani CBS, gelişen dünyanın olmazsa olmazı haline gelmiştir.

Esri Silverlight Api Query SpatialReference Problemi

11 May

Esri silverlight API kullananların yaşadıkları sorunlar dizisinden birisiyle daha karşı karşıya kalabilirsiniz. Bu sorun, harita üzerindeki bir yere sorgu yapmak istediğinizde karşımıza çıkıyor. Daha açık bir ifadeyle bir Query sonucunda sorgulanan bir yere harita züerinde çizim yapmak istediğimizde karşı karşıya kalabilmekteyiz. Örneğin bir şehir seçildiğinde o şehri harita üzerinde maviye boyamak istediğimizde sonuç alamayabiliriz.

Ben bu sorunu Esri Silverlight V2.4 dll ve Arcgis 10 Service yayınlarında yaşadım. Sorunun kaynağında yatan ise Query yapılan Layer ile Map Layer arasındaki SpatialReference farkıydı.

Sorgu:


private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
      QueryTask queryTask = new QueryTask("http://domain/ArcGIS/rest/services/sehirler/MapServer/0");

      queryTask.ExecuteCompleted += QueryTask_ExecuteCompleted;

      ESRI.ArcGIS.Client.Tasks.Query query = new ESRI.ArcGIS.Client.Tasks.Query();
      query.Where = "ILADI=" + "'Sample'";
      query.ReturnGeometry = true;
      query.OutFields.Add("*");
      queryTask.ExecuteAsync(query);

}

Map SpatialReference
Query SpatialReference

iki şekilde görüldüğü üzere sorgu yapılan Layer ve Map Layer arasında SpatialReference Farkı var. Bu farkı gidermek için sorguda kiük bir değişiklik yaparak SpatialReference farklılığını gideriyoruz.

private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{

       QueryTask queryTask = new QueryTask("http://domain/ArcGIS/rest/services/sehirler/MapServer/0");

       queryTask.ExecuteCompleted += QueryTask_ExecuteCompleted;

       ESRI.ArcGIS.Client.Tasks.Query query = new ESRI.ArcGIS.Client.Tasks.Query();
       query.Where = "ILADI=" + "'Sample'";
       query.ReturnGeometry = true;
       query.OutFields.Add("*");
       query.OutSpatialReference = MyMap.SpatialReference;
       queryTask.ExecuteAsync(query);

}

Bu işlemin ardından iki Spatial referans eşitlenir ve sorun ortadan kalkar. Map üzerindeki GraphicsLayer zerinde yapılmak istenen çizim işlemi de gerçekleşir.

GraphicsLayer

Eğer SpatialReference eşitlemesi yapılmasaydı, koordnat sistemi farkları yüzünden bu çizim işlemi başarısız olacaktı.