ArcGIS Enterprise Antivirüs Yapılandırılması

Ortamınızda ArcGIS Enterprise çalıştıran her ana bilgisayar için güvenlik riskini ayrı ayrı değerlendirmenizi ve her birinin güvenlik riski düzeyine uygun araçları seçmenizi şiddetle tavsiye ederiz.

Ayrıca, herhangi bir virüsten koruma projesini kullanıma sunmadan önce, masaüstü ve web istemcileri de dahil olmak üzere tüm sistemi tam yük altında test etmenizi ve kararlılık ve performanstaki tüm değişiklikleri ölçmenizi öneririz.

Virüs koruma yazılımı, yürütmek için sistem kaynaklarına ihtiyaç duyar ve bazı durumlarda yazılım performansını etkileyebilir. ArcGIS Enterprise ana bilgisayarlarınız üzerinde herhangi bir performans etkisi olup olmadığını belirlemek için virüsten koruma yazılımınızı yüklemeden önce ve sonra test yapmanız ve herhangi bir performans etkisine karşı istediğiniz güvenlik düzeyini dengelemeniz gerekir.

Güvenlik Risk Faktörleri

Kuruluşunuzun risk faktörlerini ölçmeye yardımcı olacak faktörler şu şekildedir.

  • ArcGIS üzerinde saklanan verilerinizin kuruluşunuz için önemi
  • Cihazınız üzerinde saklanan verilerin kuruluşunuz için önemi
  • Bilgileriniz korumak için belirlediğiniz güvenlik düzeyi
  • Bu bilgilere erişimde kaybedeceğiniz maliyet
  • Cihazınız üzerinden diğer kaynaklara kötü amaçlı yazılım veya virüslerin yayılması

Yüksek Riskli Sunucular

Birbirine bağlı herhangi bir sunucu, bir miktar enfeksiyon riski altındadır. En yüksek riskli sunucular genellikle aşağıdaki kriterlerden birini veya birkaçını karşılar:

  • Sunucuların halka açık internet üzerinden erişilebilir olması
  • Sunucuların bir güvenlik duvarı tarafından yönetilmeyen açık bağlantıdan erişilebilir olması
  • Sunucuların diğer sunuculardaki dosyalara erişim ve çalıştırma işlemlerini yapabilmesi

Anti-virüs Tipleri

Gerçek Zamanlı / Aktif Virüs Taraması : Bu tip uygulamalar sürekli olarak sunucu ve kullanıcı makinelerinden gelen giden istekleri takip eder. Yeni oluşturulan dosyaları virus ve kötü amaçlı yazılımlara karşı korur.

Endpoint protection (Uç nokta koruması) tipik olarak kötü amaçlı yazılım ve virüslere karşı korumayı birden fazla cihaz ve işletim sistemi noktasında gerçekleştirir.

Aktif virüs taraması veya Endpoint koruma yazılımı, ArcGIS Enterprise bileşenlerinde aşağıdaki sorunlara neden olabilir:

  • ArcGIS yazılımının kurulum, konfigürasyon, güncelleme işlemlerini yavaşlatabilir veya engelleyebilir.
  • Yedek oluşturma veya yedekten geri dönme işlemlerini yavaşlatabilir veya engelleyebilir.
  • Harita veya sahne servislerinde tile oluşturmayı yavaşlatabilir veya engelleyebilir.

Bu sorunları gidermek için güvenlik seviyenizi gevşetebilirsiniz. Ancak bu durumda sistemi riske atabilirsiniz. Performans ve güvenlik beklentilerinize göre bu dengeyi sağlamalısınız.

Virüs Taraması ve Yazılım Kaldırma Araçları:

Virüs Tarama yazılımı, mevcut dosyaları dosya bulaşmasına karşı tarar. Dosyaları virüs bulaştıktan sonra algılar. Virüs taramaları tipik olarak belirli bir zamanlamaya göre çalışır.

Virüs Tarama ArcGIS Enterprise bileşenlerinde aşağıdaki sorunları oluşturabilir.

  • Virüs tarayıcı bir veritabanı dosyası açtıysa ve ArcGIS Enterprise veritabanını açmaya çalıştığında hala açıksa, dosyanın ait olduğu veritabanı şüpheli olarak işaretlenebilir.
  • Yazılım bileşenleri veya yazılım tarafından oluşturulan geçici dosyalar, bilinen kötü amaçlı yazılım çeşitlerinin buluşsal yöntemlerine benziyorsa, virüs taraması potansiyel olarak yanlış sonuçlar elde edebilir.

Web Application Firewall (Web Uygulaması Güvenlik Duvarı)

WAF veya Web Uygulaması Güvenlik Duvarı, bir sunucu ile İnternet arasındaki HTTP trafiğini filtreleyerek ve izleyerek web uygulamalarının ve uygulama sunucularının korunmasına yardımcı olur. WAF, sunucunuza ulaşmadan önce HTTP trafiğini inceler ve sitenizin işlevselliğine zarar verebilecek veya verileri tehlikeye atabilecek tehditleri filtreleyerek korur. Bir web uygulaması sunucusunun önüne bir WAF yerleştirilmesi, web uygulaması ile İnternet arasına bir kalkan görevi görür. Birçok WAF, bir kullanıcının kötü amaçlı bir dosyayı kabul ettikten sonra uzaktan kod yürütmesine izin veren zararlı bir teknik olan Kötü Amaçlı dosya çalıştırma gibi saldırılara karşı koruma sağlayabilir.

  • ArcGIS Enterprise dosyaları ve dizinleri ne zaman virüs taramasının dışında bırakılmalıdır?

Yedekleme ve Geri Yükleme Operasyonları

ArcGIS Enterprise dağıtımınızın yedeklerini oluşturabilir ve bir arıza veya bozulma durumunda en son yedeği geri yükleyebilirsiniz. Bu, yedeklemeyi oluşturduğunuzda var olan portal öğelerini, hizmetleri ve verileri kurtarmanıza olanak tanır.

ArcGIS Enterprise bileşenlerinin yedek dosyalarını dışa aktarmak için webgisdr yardımcı programını kullanın. Bu araç ile aşağıda belirtilen içerikleri yedekleyebilirsiniz:

  • Portal ögeleri ve ayarları
  • GIS servisleri ve ayarları
  • İlişkisel data store ve tile cache data store

Yedekleme veya geri yükleme işlemi başladığında aktif anti virüs tarayıcıları oluşturulan dosyaları tarayacaktır. Bu dosyalar %temp% dizininde veya belirtilen yedekleme / geri yükleme dizininde oluşacaktır. Bu tarama işlemi yazma sürecini uzatacak, dolayısıyla yedekleme / geri yükleme süreçlerinin tamamlanması zaman alacaktır.

Ürün Kurulum Güncelleme veya Kaldırma

Benzer olarak  yazılımın kurulum, güncelleme ve kaldırılması sürecinde disk üzerine işlemler gerçekleştirilir. Aktif anti virüs taraması yazılımların kurulumu güncellenmesi veya kaldırılması süreçlerini uzatacaktır.

Harita, Sahne tile, Tile Paket Oluşturma veya Kopyalama

Harita, sahne tile oluşturma işlemleri esnasında binlerce dosya yazma işlemleri olacaktır. Önbellekleme işlemleri zaman alacaktır. Paket dosya halinde oluşturulan cache formatları (.bundle) daha kullanışlı olacaktır;

  • Dosya sayısı azaldığı için kopyalama işlemi daha kolaydır.
  • Cache verisinin diskteki boyutu azalır.
  • Tile oluşturma disk I/O azalması olacağından daha hızlı olur.
  • Oluşturulan tile verileri birden fazla cihazda barındırılırsa network trafiğinizde azalma olur.

Yukarıda yer alan işlemler esnasında anti virüs yazılımınızı devredışı bırakıp, süreç tamamlandıktan sonra tekrar devreye alabilirsiniz.

  • Dizinlerin ve İşlemlerin Anti Virüs Tarafından Hariç Tutulması

Anti virüs yazılımlarını yapılandırarak belirli dizinler veya dosyaları tarama işlemi dışında tutabilirsiniz. Bu işlem performans arttıracak ve dosya ve klasörlerin kilitlenmesini önleyecektir.

Bu dizinlerdeki bu dosyalara virüs bulaşırsa, virüsten koruma yazılımınız bulaşmayı algılayamaz. Bu dizinleri ve süreçleri tarama seviyesi gevşetilebilir, ancak yine de düşük kullanım zamanlarında periyodik olarak taranmalıdır. Performans beklentilerinizi güvenlik ihtiyaçlarınız ile dengelemeniz gerekir.

ArcGIS Server Dizinleri

  • \arcgisserver\directories\arcgiscache\
  • \arcgisserver\directories\arcgisjobs\
  • \arcgisserver\directories\arcgisoutput\
  • \arcgisserver\directories\arcgissystem \
  • \arcgisserver\config-store\

ArcGIS Data Store Dizinleri

  • \arcgisdatastore\pgdata\
  • \arcgisdatastore\nosqldata\

Portal For ArcGIS Dizinleri

  • \arcgisportal\temp\
  • \arcgisportal\dsdata\
  • \portalforarcgis\content\arcgisportal\db\
  • \ portalforarcgis\content\arcgisportal\index\

Servis Kullanıcısı Geçici Dizinleri

  • \%ArcGIS Account%\appData\Local\temp\

Süreç Uygulama Dizinleri (Windows)

  • %ProgramFiles%\ArcGIS\Server\framework\etc\service\bin\ArcGISServer.exe
  • %ProgramFiles%\ArcGIS\Server\framework\runtime\ArcGIS\bin\ArcSOC.exe
  • %ProgramFiles%\ArcGIS\Server\bin\ArcSOC.exe
  • %ProgramFiles%\ArcGIS\Server\framework\runtime\jre\bin\rmid.exe
  • %ProgramFiles%\ArcGIS\Server\framework\runtime\jre\bin\javaw.exe
  • %ProgramFiles%\ArcGIS\Portal\framework\service\bin\ArcGISPortal.exe
  • %ProgramFiles%\ArcGIS\Portal\framework\runtime\jre\bin\javaw.exe
  • %ProgramFiles%\ArcGIS\Portal\framework\runtime\jre\bin\java.exe
  • %ProgramFiles%\ArcGIS\Portal\framework\runtime\pgsql\bin\postgres.exe
  • %ProgramFiles%\ArcGIS\DataStore\framework\etc\service\bin\ArcGISDataStore.exe
  • %ProgramFiles%\ArcGIS\DataStore\framework\runtime\jre\bin\javaw.exe
  • %ProgramFiles%\ArcGIS\DataStore\framework\runtime\jre\bin\java.exe
  • %ProgramFiles%\ArcGIS\DataStore\framework\runtime\pgsql\bin\postgres.exe
  • %ProgramFiles%\NotebookServer\framework\etc\service\bin\ArcGISNBServer.exe

Hangi dizin ve dosyalar virüs taramasında hariç tutulmamalıdır?

  • \arcgisserver\config-store\uploads
  • \arcgisserver\directories\arcgissystem\arcgisuploads
  • \portalforarcgis\content\arcgisportal\content\items
Bu yazı için bir etiket bulunmamaktadır.

Kubernetes Üzerinde ArcGIS Enterprise

Sektör lideri jeo-uzamsal platform olan ArcGIS Enterprise’ın bu tamamen yeni uygulaması, yeni bir mikro hizmet mimarisinde tasarlandı ve 10.9 sürümünde kullanıma sunulacak.

Dağıtın, yapılandırın ve kullanın

İlk demomuzda Markus, ArcGIS Enterprise’ı Kubernetes üzerinde dağıtma, yapılandırma ve kullanma adımlarına genel bir bakış sunuyor. Markus, kuruluşu için üretime hazır ve yüksek düzeyde kullanılabilir bir jeo-uzamsal ortamın nasıl dağıtılacağını gösteriyor.

Başlamadan önce, Markus’un konuşlandırmanın bir ön koşulu olan Kubernetes kümesini sağladığını fark etmiş olabilirsiniz.

Kubernetes üzerinde ArcGIS Enterprise şu anda 3 adet  kubernetes sağlayıcı üzerinde desteklenmektedir. Zamanla bu büyüyecektir.

Şirket içi veri merkezi :

  • Red Hat OpenShift Container Platform

Bulutta yönetilen Kubernetes hizmetleri

  • Microsoft Azure Kubernetes Service (AKS)
  • Amazon Elastic Kubernetes Service (EKS)

Bu ortamlardan birinde küme sağladığınız zaman dağıtıma hazırsınız

Esri tarafından sağlanan komut dağıtım komut scriptini (./deploy.sh) direk olarak etkileşimli mod üzerinde (ilk defa kullanacak olan kullanıcılar için önerilir) veya sessiz modda konfigürasyon dosyasını düzenledikten sonra çalıştırabilirsiniz.

Script çalışırken kubernetes clusterlar ile konuşarak podları oluşturmaya başlayacaktır. (namespace isimlendirmesi sizin tercihinize göre olacaktır)

Dağıtım işlemi tamamlandıktan sonraki aşama konfigürasyon aşaması olacaktır. Bu aşama için hazırlanmış scripti kullanabilir (./configure.sh) veya browser üzerinden kurulum sihirbazı sayesinde bu işlemi tamamlayabilirsiniz.

Güncellemeler ve Yükseltmeleri gerçekleştirin.

Bu demoda, Shreyas, Kubernetes’te ArcGIS Enterprise’da güncelleme uygulama sürecinde bize yol gösteriyor. Güncellemeler, yükseltmelerden (yeni bir yazılım sürümü) ve güncellemelerden (yeni bir yama) oluşur ve yöneticilere, yeni özellikler ve geliştirmeleri kullanılabilir olur olmaz sorunsuz bir şekilde alma fırsatı verir.

 

Yönetim araçlarına bir güncelleme motoru yerleştirilmiştir. Bir güncelleme geldiğinde podların güncellenmesi için bir bildirimde bulunur. Podların tipine göre bir güncelleme stratejisi uygulanır. Örneğin;

  • Mavi-Yeşil: Bu strateji, barındırılan veri depoları tarafından uygulananlar gibi StatefulSets için uygulanır. Güncellenebilir olduğunda yeni kubernetes deployment paketi ile containerlar (podlar) oluşturulur. Veriler taşınır ve upgrade edilir. Yeni veri deposunun sağlıklı çalıştığı gözlemlendikten sonra eski veri deposu kapatılır. Yeni veri deposuna geçiş yapılır.
  • Yuvarlama: Bu strateji satece Kubernetes dağıtım ögeleri için kullanılır. Yeni podlar oluşturulurken eski podlar sıra ile kapatılır. Bu yaklaşım, güncellemeleriniz için kapalı kalma süresini en aza indirmeyi amaçlar.

Servisleri Ölçekleyin

Her hizmet talebinin önemli olduğunu ve yöneticilerin, sistemlerin ne zaman sağlıklı olduğunu ve beklenen hizmet düzeyi sözleşmelerinde (SLA) performans gösterdiğini ve belki de daha da önemlisi, ne zaman sağlıklı olmadıklarını bilmelerinin zorunlu olduğunu anlıyoruz.

Kubernetes üzerinde ArcGIS Enterprise, kullanıma hazır izleme araçları sağlamak için metrikleri toplamak için popüler bir araç olan Prometheus’u ve sonuçları görüntülemek için bir metrik görselleştiricisi olan Grafana’yı içerir.

İstekler sistem üzerinden akarken, çeşitli podlardan temel ölçümler toplanır ve Prometheus tarafından hazırlanır. Metrikler, Prometheus sorgu dili (PromQL) kullanılarak sorgulanabilir.

Kubernetes üzerinde ArcGIS Enterprise GIS hizmetleri, iki modda çalışacak şekilde yapılandırılabilir;

  • Paylaşılan – hizmet bu modda (CPU ve bellek) diğer hizmetlerle paylaşılan kaynakları kullanarak çalışır.
  • Özel – hizmet kendi özel kaynaklarını kullanarak çalışır.

10.9’da, harita hizmetleri ve barındırılan özellik hizmetleri, paylaşılan modda çalışacak şekilde yapılandırılabilir. Özel mod, dinamik harita hizmetleri, özellik hizmetleri ve sistem coğrafi işleme hizmetleri için desteklenir ve çok özel kaynak kontrol sınırı gerektiren veya SLA’ları olan hizmetler için idealdir.

Yöneticiler, hizmet podlarının sayısının yanı sıra her biriyle ilişkili CPU ve belleği kontrol etmek için ArcGIS Enterprise Manager veya Admin API’yi kullanabilir.

Yöneticiler, hizmet kullanım ölçümlerinin iki özelliğini podlar üzerinde ayrıntılı kaynak denetimiyle birleştirerek, bir hizmetin SLA’sını karşılayabilmesini ve iş akışlarına anında uyum sağlayabilmesini sağlamak için çok güçlü otomatik ölçeklendirme iş akışlarını dağıtabilir.

Ortalama yanıt süreleri artarsa, yani hizmet belirli bir süre boyunca gelen yükü kaldıramazsa, Yönetici API’sini kullanarak podların ölçeğini ayarlamak için bir tetikleyici oluşturulabilir.

Bu şekilde, yöneticiler, güçlü hizmet kullanım metriklerinin otomasyonunu ve yerleşik özelliklerini kullanarak, SLA’larını karşılamak için CBS hizmetlerini (yukarı veya aşağı) ölçeklendirebilir.

Bu yazı için bir etiket bulunmamaktadır.

ArcGIS 360 VR

ArcGIS 360 VR Web Uygulaması, masaüstünde, mobil cihazlarda ve sanal gerçeklik (VR) başlıklarında 360 VR deneyimi sağlamaktadır. 3VR, CityEngine sahnelerinin panoramik görüntülerinin VR ortamında görüntülenebilmesine izin veren bir dışa aktarım uzantısıdır.

3VR Galeri

3VR galerisi, Sanal gerçeklik ortamında, diğer kullanıcıların oluşturduğu sanal gerçeklik deneyimlerini görebildiğimiz ortamdır. Artık CityEngine ile üretilen 3VR uzantılı sahnleri web ortamında da görüntüleyebilmekteyiz.

Web uygulamasını kullanma

3VR’yi görüntülemek için VR, masaüstü veya mobil cihazları kullanabilmekteyiz. CityEngine ortamında oluşturduğumuz bookmarklar ve senaryolar, 3VR’ı daha fazla keşfetmemize olanak tanır. CityEngine yazılımında daha önceden tanımlanmış görünümlere gitmek için bakış açılarına tıklamamız yeterlidir. 3VR’da birden fazla senaryo olduğunda ise belirli alternatifleri görmek için VR başlığı veya kumandasını kullanarak senaryolar arasında geçiş yapabilmekteyiz.

Masaüstünde ve mobilde ekran deneyimi

Masaüstünde gezinmek ve etrafa bakmak için fareyi kullanabiliriz. Mobil cihazda gezinmek için cihazı hareket ettirmemiz yeterlidir.

ArcGIS 360 VR, elimizde bulunan üç boyutlu coğrafi içerikleri sanal gerçeklik ortamında deneyimleyebilmemizi sağlamaktadır. Bu sayede bir alan ile ilgili değişiklik yapmak istediğimizde alan ile ilgili önerilen gelişimleri senaryolar halinde sanal gerçeklik ortamında sunabilmekteyiz.

Senaryolara örnek vermek gerekirse örneğin bir üç boyutlu bina nesnesinin iç mekan görünümlerini sunmak istiyoruz. Senaryolarımızdan biri binanın iç mekan görünümünü kapsasın diğeri ise bina hakkında detaylı bilgiler sağlasın. Bu bilgiler binanın içerisinde bulunan borular elektrik ekipmanları ve diğer mekanik ekipmanlar olsun.

Bunun için 2 adet senaryo oluşturalım biri duvarların bulunduğu sadece iç mekan görünümü diğeri ise duvarların kaldırıldığı mekanik ekipmanların sunulduğu senaryo olsun.

ArcGIS 360 VR coğrafi içerikleri, tasarım içerikleri gibi çoğu veriyi sanal gerçeklik / panaromik gibi deneyimlere dönüştürebilmenizi sağlar.

Esri Türkiye 2021

Bu yazı için bir etiket bulunmamaktadır.

AEC Web Uygulamaları Serisi – 1

Mimarlık, Mühendislik ve İnşaat (AEC) şirketlerinin, projeleri paylaşmaya ve bu projeler üzerinde işbirliği yapmaya doğal bir ihtiyacı vardır.

AEC firmaları, projeler yoluyla sonuçları müşterilere ulaştırır. Bu bağlamda projeler ile ilgili ilerleyişi takip edebilme , öncesi ve sonrası arasındaki farkı sunabilme, projenin sağlayacağı faydanın aktarılabilmesi gibi süreçler çok önemlidir.

Daha önceki ArcGIS Pro’da Revit Dosyalarının Kullanımı ve ArcGIS Pro’da BIM 360 Verilerine Erişim yazılarımda ana veri modelinin ArcGIS platformunda içeri aktarımı ve paylaşılması gibi konulardan bahsettim. Bu blog yazımda ise bu veri modellerini kullanarak ArcGIS Online veya ArcGIS Enterprise ortamlarında web tabanlı uygulamaları nasıl geliştireceğimizi inceleyeceğiz.

*ArcGIS Pro üzerinde Revit modellerinin paylaşımı için Building Scene Layer Package seçeneğini kullanarak bir SLPK veri katmanına dönüştürdükten sonra ArcGIS Online ortamında veya ArcGIS Enterprise ortamında paylaşımını gerçekleştirebilmekteyiz. Ancak bazı ileri seviye uygulama geliştirme süreçlerinde Revit modelini bir coğrafi veri tabanına dönüştürerek de paylaşımına ihtiyaç duyabilmekteyiz. Bu blog yazımdaki örnek uygulamalarda SLPK ve GDB içerisine yazılan Revit dosyalarını kullanacağız.

*Uygulama geliştirme arayüzü olarak ArcGIS Experience Builder’ı kullandım. Buna ek olarak uygulamalara fonksiyon katmaları için ArcGIS Survey 123, ArcGIS Dashboards, ArcGIS Web AppBuilder gibi uygulamalarıda kullandım.

Örnek Uygulamalar

Gelişim Alanı Karşılaştırma – Halk Katılımı

Örnek uygulamaları senaryolarına göre oluşturalım. İlk olarak halka, gelişim alanı ile ilgili öncesi ve sonrası arasındaki farkı üç boyutlu olarak görebileceği arayüz sunalım, gelişim alanında inşa edilmesi planlanan yapıları üç boyutlu görebilsin.

Örnekte olduğu gibi iki adet sahne arasındaki farkı görebiliyoruz ve planlanan gelişim alanında üç boyutlu olarak Revit modellerini görüntüleyebilmekteyiz. Buna ek olarak sol tarafta mevcuttaki yeşil alan bina alanı gibi değerleri ile gelişim sonrasında alanın nasıl değişeceği ile ilgili bilgileri görüntüleyebilmekteyiz.

Bu uygulamada yeni yapıların inşa edileceği alanı üç boyutlu olarak, değişecek yeşil alan ve bina alanı gibi değerleri de sözel olarak sunduk. Buna ek olarak halka bu durumun uygun olup olmadığını da sorabiliriz uygulama içerisinde bir ArcGIS Survey123 anketi konumlandırabiliriz.

Bu ankette sizce bu gelişim uygun mu, herhangi bir yorumunuz var mı gibi sorular oluşturarak geri dönüşler alabiliriz. Hatta bu geri dönüşlerden grafikler oluşturarak kullanıcılara genel olarak insanların verdiği cevapları sunabiliriz.


Tüm bu ekranlar tek bir ekrandan ulaşılabilir bir şekilde tasarlandığı için kullanıcılar için güzel bir deneyim oluşturmaktadır.

Bina Keşif Uygulaması:

Bu örneğimizde ise bir bina ile ilgili bilgileri kullanıcılara sunalım ama bu bilgiler hem iç mekan hakkında hem de binanın çevresindekilerhakkında olsun. Bu uygulamamızda da aynı şekilde bir Revit dosyası kullanacağız.

Solda bulunan butonlar uygulamaya ek özellikler katmaktadır, bu sayede sadece bir modeli kullanıcılara sunmaktan ziyade, bilgiler veriyor ve geri dönüşler-başvurular alabiliyoruz. 360 görünüme geçtiğimizde ise Revit modelini görüntüleyebilmekteyiz.

Bu uygulamada ek olarak üç boyutlu iç mekan görüntüsünde bir elemana tıkladığımızda o eleman ile ilgili aksiyonlara erişebilmekteyiz. Bu sayede örneğin zemine tıkladığımızda zemin ile ilgili materyal bilgilerine erişerek bu materyali üç boyutlu olarak görüntüleyebilmekteyiz

ArcGIS Online ve ArcGIS Enterprise ortamlarında Revit modellerini üç boyutlu olarak paylaşarak bu uygulamaları sizler de oluşturabilirsiniz. Bu blog serisinde BIM-GIS entegrasyonunu etkin bir şekilde kullanımı ile ilgili örnekleri kapsayan blog yazılarına devam edeceğiz.

Esri Türkiye 2021

 

Bu yazı için bir etiket bulunmamaktadır.
ArcGIS API for JavaScript ile Web Uygulamaları – 8 Etiketleme

ArcGIS API for JavaScript ile Web Uygulamaları – 8 Etiketleme

Etiketleme

Harita üzerinde gösterimi yapılan objelere ait görsellikle birlikte, objenin nitelikleri (attributes)  kullanılarak harita üzerinde etiketler gösterimi sağlanabilmektedir. Etiketleme özelliği birçok farklı API içerisindeki sınıf tarafından sağlanmaktadır. Bununla birlikte gösterimini sağladığımız haritamızın 2D veya 3D olmasına ve üzerinde gösterilen katmanın tipi, geometri tipine göre de farklı özellikler ve kaynaklar mevcuttur. Daha detaylı bilgi için linke tıklayınız.

Örneğimizde 2D bir web haritasında feature tipinde bir katman içerisinde öznitelik bilgileri kullanılarak farklı etiketlemeler gerçekleştireceğiz.

Adımlar

  • Bilgisayarınızda öncelikle bir web sunucusu bulunmalı. Bu web sunucusunda bir HTML dosyası barındırın ve herhangi bir metin editörü dosyayı açınız.
  • Önceki blog yazılarımızdan HTML şablonu kopyalayınız.
  • Etiketleme için ArcGIS Online üzerinden yayınlanan genele açık dünya şehirleri feature servisini kullanacağız.

Bu servis içerisinde birçok nitelik barındırmaktadır.  Aşağıda örnek değerleri görebilirsiniz:

Basit Etiketleme

Etiketleme için LabelClass sınıfı kullanılacaktır.

              const labelClass = {
                // autocasts as new LabelClass()
                symbol: {
                    type: "text", // autocasts as new TextSymbol()
                    color: "red",
                    haloColor: "white",
                    haloSize: "1px",
                    font: {
                        // autocast as new Font()
                        family: "Arial Unicode MS",
                        size: 12,
                        weight: "bold"
                    }
                },
                labelPlacement: "above-center",
                labelExpressionInfo: {
                    expression: "$feature.ADMIN_NAME"
                }
            };

Bu sınıf içerisinde etiketimizi yazı tipi, renk, konumu, etiket değeri v.b. özelliklerini belirleyebiliyoruz. Sembol olarak TextSymbol sınıfında türettiğimiz sembolümüzde font olarak “Arial Unicode MS” kullanılmıştır. Etiket değeri olarak objemizin içerisindeki “ADMIN_NAME” nitelik değerinin kullanılması sağlanmıştır.

Oluşturduğumuz etiket nesnesi “labelClass” ‘ı, katmanımız içerisinde “labelingInfo” özelliğine tanıtımını da aşağıdaki gibi gerçekleştiriyoruz:

            map.layers = [new FeatureLayer({
                portalItem: {
                    // autocasts as new PortalItem
                    id: "6996f03a1b364dbab4008d99380370ed"
                },
                labelingInfo: [labelClass],
            })];

HTML kodun son hali aşağıdaki gibi olmalı:

<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
    <title>ArcGIS JavaScript API Örnekleri: Etiketleme</title>
    <style>
        html,
        body,
        #haritaBlogu {
            padding: 0;
            margin: 0;
            height: 100%;
            width: 100%;
        }
    </style>
    <link rel="stylesheet" href="https://js.arcgis.com/4.20/esri/themes/light/main.css">
    <script src="https://js.arcgis.com/4.20/"></script>
    <script>
        require([
            "esri/config",
            "esri/Map",
            "esri/views/MapView",
            "esri/layers/FeatureLayer",
        ], function (esriConfig, Map, MapView, FeatureLayer) {
            // API anahtarı girilmeli
            esriConfig.apiKey = "XXXXX"
            var map = new Map({
                basemap:  "arcgis-imagery-standard"
            });
            var view = new MapView({
                container: "haritaBlogu",
                map: map,
                center: [35, 39], // boylam, enlem
                zoom: 7
            });
            const labelClass = {
                // autocasts as new LabelClass()
                symbol: {
                    type: "text", // autocasts as new TextSymbol()
                    color: "red",
                    haloColor: "white",
                    haloSize: "1px",
                    font: {
                        // autocast as new Font()
                        family: "Arial Unicode MS",
                        size: 12,
                        weight: "bold"
                    }
                },
                labelPlacement: "above-center",
                labelExpressionInfo: {
                    expression: "$feature.ADMIN_NAME"
                }
            };
            map.layers = [new FeatureLayer({
                portalItem: {
                    // autocasts as new PortalItem
                    id: "6996f03a1b364dbab4008d99380370ed"
                },
                labelingInfo: [labelClass],
                renderer: {
                    type: "simple", // autocasts as new SimpleRenderer()
                    symbol: {
                        type: "simple-marker", // autocasts as new SimpleMarkerSymbol()
                        color: "rgba(0,100,0,0.6)",
                        size: 3,
                        outline: {
                            color: "yellow",
                            width: 4
                        }
                    }
                }
            })];
        });
    </script>
</head>
<body>
    <div id="haritaBlogu"></div>
</body>
</html>

Harita görünümü aşağıdaki gibi görüntülenir.

Gelişmiş Etiketleme

Harita üzerinde gelişmiş etiketlemede yapılabilmektedir. Örneğin farklı bir özniteliğin değerinin, belirlenen bir değerden az veya çok olması durumunda farklı renklendirmeler, belirli bir ölçekte sadece istenen bilginin etiket olarak gösterilmesi gibi gelişmiş etiketleme seçenekleri desteklenmektedir.

İlk örneğimizde sadece Türkiye verilerinde görüntülemek istiyoruz. Bunun için özniteliklerde “FIPS_CNTRY” kullanılarak sadece “TU” verisi içeren değerler kümesi belirliyoruz. Bu küme sadece Türkiye içerisindeki etiketlerde geçerli olacaktır. Bu kümenin etiketi olarak “FIPS_CNTRY” değerini mavi renkte göstereceğiz.

            const sadeceTurkiyeLabelClass = {
                symbol: {
                    type: "text", // autocasts as new TextSymbol()
                    color: "blue",
                    haloColor: "white",
                    haloSize: "1px",
                },
                labelExpressionInfo: {
                    expression: "$feature.FIPS_CNTRY"
                },
                labelPlacement: "below-left",
                where: "FIPS_CNTRY = 'TU'"
                };

Yukarıdaki kodu uyguladığımızda aşağıdaki harita görünümü oluşacaktır:

Harita üzerine dikkatlice bakıldığında, Türkiye içerisindeki gösterimi yapılan objelere ait etiketlerde mavi karakter ile “TU” görüntülenmekteyken, Türkiye dışında ülke kodu görüntülenmemektedir. Bu koşulu sağlayan durum etiket sınıfında mevcut “where” özelliğinin kullanılmasıdır.

Bir diğer örneğimizde ise etiketin öznitelik değerinin farklı renklerde durumuna göre görüntülenmesi. Örnek verimizde “POP_RANK” olarak ülke nüfusunun hangi kategoride olduğu bilgisi bulunmaktadır. Bu değeri kullanarak etiketlerimizde farklı renklerde bir değer gösterebiliriz.

            const azNufusLabelClass = {
                symbol: {
                    type: "text", // autocasts as new TextSymbol()
                    color: [255,201,14],
                    haloColor: "white",
                    haloSize: "1px",
                },
                labelExpressionInfo: {
                    expression: "$feature.POP_RANK"
                },
                labelPlacement: "below-right",
                where: "POP_RANK <= 2"
            };
            const cokNufusLabelClass = {
                symbol: {
                    type: "text", // autocasts as new TextSymbol()
                    color: [0,162,232],
                    haloColor: "white",
                    haloSize: "1px",
                },
                labelExpressionInfo: {
                    expression: "$feature.POP_RANK"
                },
                labelPlacement: "below-right",
                where: "POP_RANK > 2"
            };

Bu gösteriminin sağlanması için 2 farklı etiket oluşturup, “where” koşullarını birbirleriyle ilişkilendirmek. Aşağıdaki harita görünümünde görüldüğü üzere bazı il adlarında rakamlar ve nüfus yoğunluğuna göre farklı renklerde görüntülenmektedir.

Anlatılan farklı örnekleri tek bir uygulama içerisinde kullanımı aşağıda belirtilmektedir.

<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
    <title>ArcGIS JavaScript API Örnekleri: Etiketleme</title>
    <style>
        html,
        body,
        #haritaBlogu {
            padding: 0;
            margin: 0;
            height: 100%;
            width: 100%;
        }
    </style>
    <link rel="stylesheet" href="https://js.arcgis.com/4.20/esri/themes/light/main.css">
    <script src="https://js.arcgis.com/4.20/"></script>
    <script>
        require([
            "esri/config",
            "esri/Map",
            "esri/views/MapView",
            "esri/layers/FeatureLayer",
        ], function (esriConfig, Map, MapView, FeatureLayer) {
            esriConfig.apiKey = "XXXXX"
            var map = new Map({
                basemap: "arcgis-imagery-standard"
            });
            var view = new MapView({
                container: "haritaBlogu",
                map: map,
                center: [35, 39], // boylam, enlem
                zoom: 7
            });
            const labelClass = {
                // autocasts as new LabelClass()
                symbol: {
                    type: "text", // autocasts as new TextSymbol()
                    color: "red",
                    haloColor: "white",
                    haloSize: "1px",
                    font: {
                        // autocast as new Font()
                        family: "Arial Unicode MS",
                        size: 12,
                        weight: "bold"
                    }
                },
                labelPlacement: "above-center",
                labelExpressionInfo: {
                    expression: "$feature.ADMIN_NAME"
                }
            };
            const sadeceTurkiyeLabelClass = {
                symbol: {
                    type: "text", // autocasts as new TextSymbol()
                    color: "blue",
                    haloColor: "white",
                    haloSize: "1px",
                },
                labelExpressionInfo: {
                    expression: "$feature.FIPS_CNTRY"
                },
                labelPlacement: "below-left",
                where: "FIPS_CNTRY = 'TU'"
            };
            const azNufusLabelClass = {
                symbol: {
                    type: "text", // autocasts as new TextSymbol()
                    color: [255, 201, 14],
                    haloColor: "white",
                    haloSize: "1px",
                },
                labelExpressionInfo: {
                    expression: "$feature.POP_RANK"
                },
                labelPlacement: "below-right",
                where: "POP_RANK <= 2"
            };
            const cokNufusLabelClass = {
                symbol: {
                    type: "text", // autocasts as new TextSymbol()
                    color: [0, 162, 232],
                    haloColor: "white",
                    haloSize: "1px",
                },
                labelExpressionInfo: {
                    expression: "$feature.POP_RANK"
                },
                labelPlacement: "below-right",
                where: "POP_RANK > 2"
            };
            map.layers = [new FeatureLayer({
                portalItem: {
                    // autocasts as new PortalItem
                    id: "6996f03a1b364dbab4008d99380370ed"
                },
                labelingInfo: [labelClass, sadeceTurkiyeLabelClass, azNufusLabelClass, cokNufusLabelClass],
                renderer: {
                    type: "simple", // autocasts as new SimpleRenderer()
                    symbol: {
                        type: "simple-marker", // autocasts as new SimpleMarkerSymbol()
                        color: "rgba(0,100,0,0.6)",
                        size: 3,
                        outline: {
                            color: "yellow",
                            width: 4
                        }
                    }
                }
            })];
        });
    </script>
</head>
<body>
    <div id="haritaBlogu"></div>
</body>
</html>

 

ArcGIS JavaScript API ile yazılmış diğer örnekleri incelemek için linke tıklayınız.

İleri düzey ArcGIS Developer eğitimleri,atölye çalışmaları ve yol gösterme hizmetleri için Esri Türkiye Profesyonel Hizmetler birimi ile irtibata geçiniz.

Esri Türkiye 2021