ArcGIS Subtype Kullanılan FeatureClass ile Domain Kullanımı

7 Oca

ArcGIS platformunda oluşturulan coğrafi veri tabanları (geodatabase) üzerinde attribute domain’ler oluşturarak veri tabanındaki bütün FeatureClass’lar üzerinde kullanabilirsiniz. Attribute domain’ler FeatureClass üzerinde tanımlanan filed veri tipi ile uyumlu olmalıdır. Çünkü her attribute domain bir veri tipine sahiptir. Bu veri tipleri:

  • Short
  • Long
  • Float
  • Double
  • Text

Örnek bir attribute domain aşağıdaki gibi tanımlanabilir.

Burada “su_tipi” adında bir attribute domain oluşturulmuştur. Aldığı değerler ise code ve description alanlarına doldurulmuştur.

Hazırlanan attribute domain, bir feature class içerisindeki field üzerine aşağıdaki şekilde eklenip defalut değeri seçilebilir.

Artık siz içmesuyu ana hat çizimi yaparken su tipleri otomatik olarak “Arıtılmış” değerlerini almış olacaktır.

Dikkat

Ancak, eğer tanımladığınız feature class(şekilde içmesuyu ana hattı) üzerinde oluşturduğunuz bir subtype varsa attribute domain değerleri otomatik olarak gelmeyebilir. Bu durumda Arcgis Pro üzerinde attribute domain neden çalışmıyor diye düşünebilirsiniz. Ancak Arcgis Pro üzerinde subtype oluşturulduğunda her type için farklı attribute domain özelliği tanımlayabilme yeteneği getirilmiştir. Bu nedenle siz her bir subtype için değerleri yeniden belirlemek durumunda kalabilirsiniz. Eğer tanımlamazsanız çizim yaparken attribute değerleriniz null olarak gelebilir.

Yukarıdaki içmesuyu ana hat feature class üzerinde “*hat_tipi” field biraz daha koyu renkle ve “*” ile işaretlenmiştir. Bunun nedeni, hat_tipi alanında bir subtype tanımlanmış olmasıdır. Bu durumda her bir subtype üzerinde attribute domain tanımlamalarını tekrar gözden geçirmek durumunda kaldım. Eğer attribute domain tanımlamanızı, subtype oluşturduktan sonra yaptıysanız bu ayarları mutlaka kontrol etmelisiniz.

Subtype ekranında her bir su_tipi alanının belirlenmiş olduğunuzda artık bir sorun ile karşılaşmazsınız.

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ı.

Silverlight Invalid Charecter Encoding Sorunu

25 Nis

Silverlight ortamında bazı proje şablonlarını kullanırken dile özgü karakterlerin kullanılması sonucu hatalarla karşılaşabilmekteyiz. Bu hatalardan biri de benim başıma geldi. Esri Silverlight API kullanırken hazır şablonlardan birini seçip edit etmeye başladığımda design sayfasında bir hata oluştu. Hatanın sebebi Türkçe karakterler kullanmam idi. Oluşan hata şu şekildeydi.

Error  1   Cannot resolve reference assemblies. Please check the reference assemblies. Invalid character in the given encoding. Line 116, position 53.  

Proje template oluşturulurken muhtemelen global ayarlar seçilsin şeklinde ayarlanmış olmalı ki ayarlarda Türkçe encoding seçiliydi.

Bu ayarı UTF-8 yapmalıydım. Bu işlem için aşağıdaki yolu izledim. File -> Advenced Save Options…

Encoding seçeneklerinden de Unicode(UTF-8 with signature) – Codepage-65001 seçeneğini seçip OK tuşuyla devam ettim.

Ardından projeyi bir kez derlediğimde sorun ortadan kalktı. İşte mutlu son.

Tekrar görüşmek dileğiyle.