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