← Back to list

JS ve CBS uygulamaları-1- Koordinattan Pafta İsmi Bulma

Merhabalar, bu yazı dizisinde CBS(Coğrafi bilgi sistemleri) veya uluslararası literatürde söylenildiği gibi GIS (Geographical Information…

Hakan Özoğlu · 2021-06-07 12:49 · 109 claps · 3.0 min read
#gis #js #kartography #cartography #cbs
Open on Medium ↗

JS ve CBS uygulamaları-1- Koordinattan Pafta İsmi Bulma

Merhabalar, bu yazı dizisinde CBS(Coğrafi bilgi sistemleri) veya uluslararası literatürde söylenildiği gibi GIS (Geographical Information Systems) konulu uygulamalar ve onların JS dünyasında nasıl gerçekleştirilebileceği hakkında konuşacağız.

Jeodezi, Kadastro gibi alanlarda eğitim almış veya sektör tecrübesi olan arkadaşlar ikinci bölüm kısmına kadar atlayabilir.

Pafta Ne , ilk bölüm TL;DR?

Arazilerin teknik usullere göre ölçülüp belli oranda küçültülerek çizilmiş haritasıdır. Jeodezide tek bir altlığa çizilmiş birim haritaya PAFTA denir. Paftaların sayısı birden fazla olması durumunda karışıklığı önlemek veya paftaların arandığında kolayca bulunabilmesini sağlamak ve komşu paftalar ile aralarındaki ilişkileri kurmak amacı ile haritası yapılacak alan için uygun bir pafta bölümlemesine ihtiyaç duyulur. Pafta bölümlemesinde her bir paftanın tanıtma işareti veya ismi ile yeryüzünde kaplayacağı alan belirtilir. Bu isimlendirmeye “Pafta indeksi” denir.

Ülkemiz ve dünyadaki tüm ülkeler, halihazır adı verilen, mevcut durumu tüm detaylarıyla gösteren haritalar hazırlatırlar ve bunun içinde sokak lambasından kaldırım taşının başlayıp sonlandığı yerler dahi gösterilir. Bu haritalar eskiden bilgisayarlarda tutulmayıp belirli ölçeklerde (1/250.000, 1/50.000 gibi) genişçe kağıtlara kaydedilip arşivlerde saklanılırdı. Bu arşivleme bir kordinat noktasının aynı anda, aynı ölçekte birden fazla paftada yeniden çizilemesinin önlenmesi adına, henüz halihazır haritalar çizilmeye başlanılmadan önce ülkenin tamamı karelere bölündü. Daha sonra o kareler de alt karelere, onlar da daha alt karelere bölündü ve halihazırı yapılacak olan ülkenin tüm arazisi , hem hiçbir yer atlanmayacak şekilde hem de hiçbir yer iki kez yapılmayacak şekilde organize edildi.

Bulma Sorunu

Pafta sayısı o kadar fazlaydı ki daha sonra bu halihazır haritalara ihtiyaç duyduğunuzda ihtiyacınız olan nokta veya bölge hangi paftaya karşılık geliyor onu bulmak için bir arşivleme-isimlendirme sistemine ihtiyaç vardı.

Bu noktada tüm ülkeler bu işlere bilgisayar sistemlerinin arşiv amaçlı kullanılmasından çok daha önce bu isimlendirme sistemini manuel olarak yapmak zorundaydılar (Şimdi olsa ElasticSearch koyar geçeriz). Birnevi index mekanizması kurdular.

Her ülkenin pafta isimlendirme sistemi kendine göre farklılık gösterebilir. Bu yazının konusu olan uygulama ise koordinatı verilen bir noktanın hangi isimli paftaya denk geldiğini bize veren bir uygulama.

Ulusal pafta bölümlendirmesi hakkında daha ayrıntılı bilgi edinmek isteyen arkadaşlar http://www.imarkadastro.com/userfiles/file/TrPafta.pdf adresinden ve Google’dan arama yapabilir.

İkinci Bölüm : Uygulama

İlk Problem: JS’in çok küçük sayılarla olan sorunu

JS’in çok küçük decimal ve çok büyük integer sayıları tam olarak aynı tutmaması gibi bir sorunu bilmeyenimiz yoktur.

Bu konuda Medium’da yazılmış çokça kaynak bulabilirsiniz. Daha sonra bunun sebebini açıklayan geniş bir yazı yazmayı düşünüyorum. Bu uygulama için konumuz bunun sebebi değil, nasıl başa çıkacağımız

Şöyle harika bir kütüphane var : Decimal.JS, Küçük sayılarla çalışırken kullanabileceğimiz güzel bir decimal sınıfı ve her çeşit matematik fonksiyonunu sınıf metodu olarak barındırıyor. Ben bu uygulamada ve gereken diğer tüm uygulamalarımda (CBS uygulamalarında çok fazla gerekiyor, derece cinsinden verilen bir koordinatın küsüratındaki sapma belki sonuç koordinatını 50–100 metre değiştirebilir. ) bunu kullanıyorum.

İkinci Problem: Koordinat İfade Etmenin Farklı Formatları

Bu bir koordinat ifade etme şekli 51° 29' 46" N, ama bu da bir koordinat ifade etme şekli 41.021225596. Bu ondalıklı olan ifade yani decimal. İlki ise 60'lık tabanda. Yani sexagesimal.

Bunların arasında bir konversiyon işlemiş yapılmalıydı. Bunun için yazılmış ve içinde daha bir çok GIS ile ilişkili utility fonksiyon barındıran, yine severek kullandığım, İşte karşınızda **Geolib**

Gelelim uygulamaya.

TypeScript sevmediğim için Enum tanımladım. Koordinat tipinin nasıl geldiği ile ilgili bir coordinatType parametremiz var. decimal-sexagesimal olarak.

Type Enum

Type Enum

1/250.000 ölçekli paftalarda kullanılan şehir isimlerini içeren bir dizimiz var. Kalan işlemlerin tümü aritmetik hesaplara dayalı.

Test Girişleri

Test Girişleri

Çıkış Değerleri

Çıkış Değerleri

Kodların tamamına şuradan erişebilirsiniz. Repoyu takip edebilir, veya star bırakabilirsiniz.

Soru görüş ve önerileriniz için ise ↓Aşağıya yorum bırakabilirsiniz.


메타데이터
post_id
16a2eaef666f
slug
js-ve-cbs-uygulamaları-1-koordinattan-pafta-i̇smi-bulma-16a2eaef666f
url
https://medium.com/@haandev/js-ve-cbs-uygulamalar%C4%B1-1-koordinattan-pafta-i%CC%87smi-bulma-16a2eaef666f
canonical_url
https://medium.com/@haandev/js-ve-cbs-uygulamalar%C4%B1-1-koordinattan-pafta-i%CC%87smi-bulma-16a2eaef666f
author_url
https://medium.com/@haandev
status
ok
fetched_at
2026-08-26 08:56:39