MongoDB ile Geospatial İşlemleri [1]
Bu yazıda MongoDB kullanarak bir konumun daha önceden belirlenmiş hangi alan içerisinde bulunduğunun tespitini anlatacağım.
Geospatial(GIS) Nedir ?
Dünya üzerinde enlem ve boylam değerlerini kullanarak konumlandırma yapılabilen tüm verilere Geospatial denir. Geospatial veriler çizgi, nokta veya bir alan olabilir.
Geospatial veriler ile konum bazlı uygulamalar geliştirmede, analiz yapmak için veya görselleştirme için kullanılabilir.
Geospatial uygulamalara örnek olarak, anlık konum takibi yapan bir uygulamanız olduğunun düşünün. Bir sınır belirleyebilirsiniz ve takip edilen nesne sınır dışına çıkılırsa uyarı gönderebilirsiniz.
MongoDB, geospatial veriler üzerinde kolayca sorgulama yapmamızı sağlayan fonksiyonlar barındırmaktadır.
Bknz : MongoDB Geospatial Queries
Senaryo
Harita üzerinde kırmızı, mavi ve mor bölgeler belirlenecek ve MongoDB üzerine kayıt edilecek. Daha sonra bir konum verisi ile sorgu yapıldığında bu bölgelerden hangisinde olduğunu belirlenecek.
Adım 1 : Bölgelerin konum verilerinin kayıt edilmesi
Bu adımda yukardaki resimde numaralandırdığım şekilde konum verilerini MongoDB üzerinde kayıt edeceğim.
ANCAK ÖNEMLİ BİR DURUM VAR
SORGUDA İLK EKLENEN KONUMU EN SON BİR DAHA EKLİYORUZ Kİ BÖLGE TAMAMLANSIN
Kırmızı Bölge Konumları
-1- 40.74853699089275, -73.98858493537098
-2- 40.74726238090552, -73.98556200333172
-3- 40.747762258712925, -73.98519722290376
-4- 40.74904334924098, -73.98818965097936
Mavi Bölge Konumları
-1- 40.748612568756094, -73.98693974157744
-2- 40.7478586961976, -73.98512388606474
-3- 40.74841749743118, -73.98472155471039
-4- 40.749018965511745, -73.98611898561454
-5- 40.74875074393167, -73.98632015129174
-6- 40.74890720665152, -73.98671443601901
Mor Bölge Konumları
-1- 40.74912462827149, -73.98812259575745
-2- 40.74862882468412, -73.98699606796521
-3- 40.74891939854641, -73.98672248264424
-4- 40.748777159751484, -73.98633088012599
-5- 40.748962070125565, -73.98619945188356
-6- 40.74969967452865, -73.98771221777587
Adım 2 : Konum verisi ile test edilmesi
Test için harita üzerinde 5 farklı konum belirledim.
Test Konumları
-A- 40.74832423412688, -73.98723144238832 (Kırmızı Bölge)
-B- 40.74845021793302, -73.985670396684 (Mavi Bölge)
-C- 40.7486644251854, -73.98654273407209 (Mavi Bölge)
-D- 40.748777159751484, -73.98633088012599 (Mor Bölge)
-E- 40.749151292494, -73.98546753897378 (Bölge Dışı)
Yukardaki sorgu her test konumu için uygulandığında aşağıdaki sonuçları vermektedir.
Sonuç
MongoDB, konum bazlı uygulama geliştirme konusunda ciddi kolaylıklar sağlayabiliyor. Bu senaryoyu farklı senaryolara uygulayabilirsiniz ve konum verileri üzerinde çeşitli analizler yapabilirsiniz.
Örnek olarak bir market içerisinde reyonları belirleyerek o reyona kaç müşteri girdiği, hangi zaman aralığında en çok müşteri geldiği, en çok müşteri gelen reyon hangisi gibi analizler yapılabilir.
Bir sonraki yazımda MongoDB ile bir konumdan belirli bir mesafedeki diğer konumların sorgulanması üzerine olacaktır. Yazı hazır olduğunda ise buraya linki ekleyeceğim.
Vakit ayırıp okuduğunuz için teşekkür ederim… :D