BLM307 YAZILIM LAB I. Proje 1

Transkript

BLM307 YAZILIM LAB I. Proje 1
BLM307 YAZILIM LAB I.
Proje 1
Proje: Suç verilerinin haritalar üzerinde görüntülenmesi (konumlandırılması) ve interaktif analizini
sağlayan web tabanlı uygulama geliştirilmesi.
-
Kullanılacak Programlama Dili, Projenin Geliştirileceği Platform ve Grafik Arayüzü secimi
konusunda serbestsiniz.
Proje kaynak kodları (source code) hem CD içerisinde hem de basili cıktı olarak teslim
edilecektir.
Proje ile alakalı sorularınız için [email protected] veya
[email protected] adreslerinden birine ulaşabilirsiniz.
Projenin Amacı:
Haritalar, coğrafi ve mekânsal verilerin görüntülenmesi, yorumlanması ve analizinde kullanılan yaygın
araçlardır. İnsanların günlük hayatlarında yon (gps) ve adres bulmada kullanılmasının yani sıra; deprem
araştırmaları, savunma sanayi ve erken uyarı sistemleri gibi çeşitli disiplinlerde uygulama ve kullanım
alanları vardır.
İnternetin yaygınlaşmasıyla haritaların günlük hayatta ne kadar sık kullanıldığının fark edilmesi üzerine,
basta Google olmak üzere Yahoo ve Mapquest gibi bilgi-teknolojilerinin öncüleri harita kullanımını
yaygınlaştırmak, kolaylaştırmak ve web uygulamalarında kullanımını sağlamak için çeşitli araçlar (tools)
ve hatta programlama arayuzleri (API) geliştirmişlerdir. Bunlardan en tanınmışı Google Map API dir.
Google Map (bknz http://maps.google.com/), haritaların web sayfaları üzerine embed edilmesini ve
mekânsal verilerin (mesela adres defterimizdeki kontak bilgileri) haritalar üzerine overlay edilmesine
imkân sağlayan zengin programlama arayuzleri geliştirdi (bknz http://code.google.com/apis/maps/). Bu ise
bize mekânsal verilerin haritaların üzerinde konumlandırılmasına (katmansal görüntüleme) uzaktan
erişimine ve interaktif olarak sorgu ve analizine imkân sağladı.
Bugün suç haritaları birçok bilim dalı tarafından yapılan suç çalışmalarında kullanılmaktadır. Bu
haritalarda asıl amaç suçla onun geliştiği veya oluştuğu alan arasındaki ilişkilerin ortaya çıkarılması ve
analiz edilmesidir. Analiz işleminde alanda meydana gelen suçların artış, azalış, dağılış ve arazi
kullanımıyla ilgili çeşitli bağlantıları değerlendirilir.
Sizden bu uygulamanın bir proje ile geliştirilmesi istenmektedir. Bu projede mekânsal veri olarak Bizim
Kocaeli
Gazetesi’nin
arşivindeki
Polis-Adliye
verilerini
kullanacaksınız
(bknz
http://www.bizimkocaeli.com/tum-arsiv.html). Arşivde 2008-2012 yılları arasındaki tüm kategorilerdeki
haberler bulunmaktadır. Siz sadece 2011 ve 2012 yıllarındaki Polis-Adliye verilerini kullanacaksınız.
Suç kayıt defteri formatı Tablo-1 de verilmiştir. Suç kayıt defterindeki suçlar (işlendiği yer bilgileri
sayesinde) harita (Google Map) üzerinde işaretlenecektir (Figür-1’deki gibi). Geliştireceğiniz uygulama
web uygulaması olacağı için (JSP ya da ASP) HTTP protokolü üzerinden uzaktan erişime imkan
sağlayacaktır.
Proje bitiminde; (1) JAVA yâda .NET ortamında web applicationlarin geliştirilmesi, (2) hazır
kütüphanelerin (Google map API) kullanımı ve (3) Eclipse ya da Visual Studio IDE’leri üzerinde uygulama
geliştirmesi konularında en az başlangıç seviyesinde bilgi sahibi olmanız amaçlanmaktadır.
Proje Tanımı ve Yapmanız Gerekenler:
Aşağıda, geliştireceğiniz projenin detaylarını bulacaksınız.
Suç bilgilerini Tablo-1’deki, karakol adres bilgilerini ise Tablo-2’deki gibi TEXT dosyalarında tuttuğunuzu
düşünün (örnek: sucdefteri.txt ve karakol.txt): Sizden istenen; “sucdefteri.txt” dosyasında tuttuğunuz suç
bilgilerini farklı suç tiplerine göre farklı renklerde Google Map üzerine konumlandırmanız ve istenen
analizleri gerçeklemenizdir. Text dosyalarına suç bilgilerini veya karakol adres bilgilerini elle
ekleyebilirsiniz, bunun için ayrıca bir arayüz ve bir fonksiyon kullanmanıza gerek yoktur.










Suç tipi—renk
Hırsızlık(otomobil, motor vb.)—mavi
Tehdit—sarı
Tecavüz vb.—yeşil
Dolandırıcılık—turuncu
Uyuşturucu—beyaz
Soygun—siyah
Ateşli silah(cinayet, silahla yaralama vb.)—kırmızı
Şiddet—mor
İntihar—pembe
Tablo-1: sucdefteri.txt
Suçun-cinsi
İşlenme-zamanı(Y-A-G)
İşlendiği-yer(mah,cad,sok)
Ateşli silah
Soygun
….
2012,Ocak,02
2011,Şubat,15
….
Turgut Özal Mah. 305 Sok. Dilovası Kocaeli
Şehitler Mah. Kocatepe Cad. No:12 Gölcük Kocaeli
….
Tablo-2: karakol.txt
Sube-ismi
Adres
Merkez Karakol
….
….
Gölcük, Merkez, Kocaeli
….
….
İşleyen-cins-yaşı
K,33
E,40
….
Figur-1: Sizden istenen web sayfasının örnek bir formatı
Tablo-1’deki suçlar işlendikleri yerlere göre harita üzerinde (suç tipine göre farklı renklerde ters damla
seklinde) gösterilmiştir. Her nokta suç defterindeki bir suça karşılık geliyor. Noktaların üzerine
tıkladığınızda (Figür-1 de görülen bilgi ekranındaki gibi) o noktaya karşılık gelen suçun tüm bilgileri
görüntülenecektir. Bunu için veritabanı kullanmanıza gerek yok. Burada harita, Google Map service
sunucusundan (server) sağlanıyor. Suç bilgileri ise bilgisayarınızda text dosyası olarak tuttuğunuz suç
kayıt defterinden geliyor. Google Map API’ni incelerseniz örnek kodların da yardımıyla bunun nasıl
yapılabileceğini kolaylıkla göreceksiniz.
Figür-1’deki harita standart bir Google haritası (bknz http://maps.google.com/). Harita üzerinde, sol ve sağ
üst kösede gösterilen araçlar (Map, Satellite ve Hybrid) Google’in Standard araçları. Bunlar sayesinde
harita üzerinde nevigation yapabiliyor ve harita tinerini (formatlarını) değiştirebiliyorsunuz. Örneğin,
yukarıdaki figürde default olarak “Map” seçilmiştir. “Satellite”i seçerseniz, uydu görüntüsü, “Hybrid”i
severseniz uydu ve harita görüntülerini birlikte gösterilecektir. Bunlar için sizin bir şey yapmanıza gerek
yok. Google mapi kendi web sayfanıza embed ettiğinizde bunlar otomatikman gelecektir.
Sizin yapmanız gereken:
-
Basit bir web uygulaması oluşturmak (JAVA ya da .NET)
Bu web uygulaması paketi içinde bir web sayfası (index.html/index.jsp yada index.asp)
oluşturmak
Bu web sayfası içine Google Map’i embed etmek
-
-
-
Suç kayıt defteri olarak tuttuğunuz TEXT dosyanızdan suç mahallerini okuyup koordinatları (x,y)
hesap etmek. API içinde adresten koordinat hesaplayan fonksiyon var.
Bulunan koordinatları harita üzerinde işaretleyici (marker) ile göstermek. API içinde (x,y)
koordinatlarını harita üzerinde gösteren fonksiyon var. Her işaretleyiciye karşılık tutulması
gereken bilgi ekranı için ilaveten bir veri yapısı oluşturmanız gerekebilir. API’lar bunun için size
yardımcı olacaktır. Benzer şekilde karakollar da harita üzerinde konumlandırılır. Buraya kadar
veriler harita üzerinde konumlandırılmış olur.
Suç tipine göre arama yapmak.(örneğin dolandırıcılık suçlarının listelenmesi) Yapacağınız
aramalara göre birden fazla sonuç da dönebilir ve checkbox lari işaretleyerek birden fazla sonuç
harita üzerinde konumlandırılabilir. Aramalarınız büyük-küçük harf sezgisine sahip olması
gerekmektedir. Yani “dolandırıcılık” ile “Dolandırıcılık” aynı kelimeler olarak değerlendirilecektir.
Birden fazla kelimeyi arayacaksanız aralarına “,” koymanız gerekecektir. Arama sadece suç tip ile
sınırlı değildir. İşlenme zamanı, işlenilen yer, cinsiyet ve yaşa göre de arama yapılabilmelidir.
Bir alandaki toplam suçların grafiksel dağılımı gösterilecek(Sadece yukarıdaki suç tiplerinin
olduğunu varsayınız. Herhangi bir grafik türü olabilir: sütun, pasta, çubuk vs.).
Suçların yıllar içindeki gelişimini göstermek.(Yalnız 2011 ve 2012 nin verileri tutulacağı için
2012’de 2011’e göre suçlarda ne kadar artma-azalma olmuş grafiksel gösterilecek)
Belirli bir yer merkez olmak üzere merkezden belirli bir çapta olan suçların listelenmesi,
gösterilmesi. (Anıtpark’a 1 km uzaklıkta olan suçların listelenmesi, gösterilmesi gibi)
Belirli bir suça en yakın karakolun belirlenip güzergâhın harita üzerinde gösterilmesi. (Dijkstra,
Bellman–Ford veya Floyd–Warshall algoritmalarından yararlanabilirsiniz.)
Benzer şekilde sizin ekleyeceğiniz analizler de kabul edilir.
NOT: VERITABANI SISTEMLERI KULLANMAK KESINLIKLE YASAKTIR. VERILER TEXT DOSYASINDA
DEPOLANACAK VE ARAMALAR DOSYA UZERINDE TEXT KARSILASTIRMASI ILE YAPILACAKTIR.
Google Map API ile alakalı daha fazla bilgi için aşağıdaki linkleri inceleyebilirsiniz.
Önemli Kaynaklar:
Google Map: http://maps.google.com/
Google Map API: http://code.google.com/apis/maps/
Google Map API kullanım örnekleri: http://code.google.com/apis/maps/documentation/examples/
JAVA ortamında Google Map uygulamaları: http://claudiushauptmann.com/tutorial-google-maps-withjava-gwt-and-eclipse.html
.NET ortamında Google Map uygulamaları: http://en.googlemaps.subgurim.net/
API: Application Programming Interface – Programlama arayuzu
IDE: Integrated Development Environment – Program geliştirme ortamı
Web Application: Internet tabanlı uygulamalar
Aklınıza Gelebilecek Sorular ve Cevapları:
Soru-1: Projeyi PHP ile yapmam sorun olmaz değil mi?
Cevap: Hayır.
Soru-2: Demo sırasında internet olacak mı?
Cevap: Sunum ve demo sırasında internet bağlantısı olacak.
Soru-3: Projede text file formatını xml seklinde yapmamız mümkün mü? Ben Örnek bir sema yaptım.
Dosya formatı verdiğiniz şekilde mi olmalı mutlaka.
Cevap: Proje için text dosyasından okumak yeterli ancak ekstra fonksiyonlar olarak ekleyebilirsiniz ve
bana demoda sunabilirsiniz.
Soru-4: Internet olmadan harita çalışmıyor?
Cevap: Çalışmaz.
Soru-5: Text yerine veritabanı kullansak olmaz mı?
Cevap: HAYIR.
Soru-6: Haritanın sayfamda gösterimi için key gerektiğini duydum. Key'i nasıl alabilirim
Cevap: http://code.google.com/apis/maps/signup.html
Soru-7: Google map APIsi bazı adres sorgularında gerekli yerleri göstermiyor tam olarak yaklaşık
yerleri gösteriyor bu yeterli mi?
Cevap: Yeterli. Bazen Türkçe karakterlerde de hata verebiliyor, test amaçlı seçtiğiniz adreslerde Türkçe
karakter olmamasına dikkat edin.
Soru-8: bazı adres sorgularında hiç bir adres görüntülenemiyor bu durumdan kaçınmak için text
dosyasında adresleri verirken bu adresler sizin tarafınızdan denenmiş çalışan adresler mi olacak?
Cevap: Alternatif adresler verin. Bazı yerler haritada tam olarak gösterilemeyebilir. Ama daha önceki
sorulardan birinde de cevapladığım gibi. Yaklaşık adres yeterli.
Soru-9: Visual studio da “run as a web application” seklinde servis var biz onu çalıştırıyoruz. Ayrıca
server kurmamıza gerek var mı?
Cevap: Ne yaparsanız yapın sonuçta applicationa uzaktan ulaşılması gerek. Mesela, oluşturduğunuz aspx
sayfası 8080 portunda çalışan "harita.aspx" olsun; sonuçta ben herhangi bir web browserdan aşağıdaki
şekilde sizin servisinize ulaşabilmem ve kodu test edebilmem lazım.
http://IP:8080/harita.aspx
Soru-10: Text dosyası formatını kendimiz ayarlayabilir miyiz ?
Cevap: Her bir veri iletişim (kontak) bilgisi için sıralama sana kalmış ama projede verdiğim şekilde
yapman tavsiye edilir kolaylık acısından. Her bir satırdaki verilerin arasına tab koyabilirsin, bir boşluk
bırakabilirsin ya da '/', '-' vs koyabilirsin. Onlar da tamamen sana kalmış.
Soru-11: Text dosyasının formatında sunum sırasında değişiklik olmayacak değil mi? Biz projede text
dosyasını ona göre okutacağız çünkü.
Cevap: Format sizin tanımladığınız ya da projede önerilen şekilde olacak. Sunum sırasında değişik
formatta girilmeyecek. Text dosyasına birkaç bilgi girilecek ama sizin tanımladığınız formatta olacak.
Demo Günü Teslim Etmeniz Gerekenler:
1. Uygulamanız uzaktan başka bilgisayar ve browser ile kullanılabiliyor mu?
NOT: Yeni 'IP' ile 'key' için başvuruyu demo sırasında yapacaksınız(yapabilirsiniz)
2. Bunların yanında kodlama ve uygulamayı yaptığınız ortam (IDE) hakkında sorulacak olan
sorulara hazırlıklı olmanız beklenmektedir.
3. Demo günü teslim edilecekler:
- Programınızın CD'si. CD içinde kodunuz, programınızın çalıştırabilmesi için gerekli olan
instructionlar (readme.txt) ve raporunuz.
- Proje'nin rapor çıktısı (hard-copy). Raporunuzun, genel rapor formatında olması yeterli.
Son Teslim tarihi: 26 Ekim Cuma saat 17.00’ye kadar.

Benzer belgeler

google earth programı ile

google earth programı ile yaygınlaştırmak, kolaylaştırmak ve web uygulamalarında kullanımını sağlamak için çeşitli araçlar (tools) ve hatta programlama arayuzleri (API) geliştirmişlerdir. Bunlardan en tanınmışı Google Map A...

Detaylı