Nokia Java ME harita kütüphanesini kullanarak lokasyon bazlı uygulamalar geliştirebilirsiniz. Nokia Java ME harita kütüphanesi, Nokia harita altyapısı ve lokasyon bazlı servislerini, Series 40 telefonlara uygulamalar geliştirmek için kolayca entegre etmenizi sağlar. Bu webinar temel harita gösterme ve kullanma özelliklerini nasıl gerçekleştirebileceğinizi göstermenin yanısıra, size haritalara ikon, işaretler eklemeyi ve çeşitli arama özelliklerini gösterecek.
4. Nokia Harita Uygulama Kütüphaneleri
http://www.developer.nokia.com/Maps/
• Maps API for JavaScript
• Nokia Places API (beta)
• Map Image API for HTTP
• Maps API for Qt
• Maps API for Java ME
4
5. Nokia Java ME Harita Kütüphanesi
• MIDP 2.0 ve üstü telefonları destekler
• Series 40 telefonlar için optimize
• Façade Pattern ile alt seviye tüm detayları saklar
• 150 kB büyüklüğünde
• Farklı harita tipleri (Uydu, Alan, Transit vs)
• Polyline, polygon, işaretler gibi harita temel harita
objelerine destek
• Arama, yol tarifi gibi servislere destek
• Genişletilebilir
http://www.developer.nokia.com/Develop/Maps/Maps_API_for_Java_ME/
5
6. Nokia Java ME Harita Kütüphanesi ve
Statik Harita Servisleri
Statik Servis Nokia Java ME Harita
Kütüphanesi
6
8. Alışveriş Listesi
1. Java Runtime Environment 6
http://www.java.com/en/download/index.jsp
2. Eclipse ve Eclipse MTJ
http://www.eclipse.org/mtj
http://www.developer.nokia.com/Resources/Library/Java/#!getting-started/
3. Nokia SDK for Java
http://www.developer.nokia.com/Develop/Java/Tools/
4. Nokia Java ME Harita kütüphanesi
http://www.developer.nokia.com/Develop/Maps/Maps_API_for_Java_ME/Getting_started/
8
9. Java Harita Kütüphanesi
Jar dosyasını indirin
http://www.developer.nokia.com/Develop/Maps/Maps_API_for_Java_ME/Getting_started/
Nokia SDK for Java
2.0 içine entegre
9
14. İlk Haritam
5 satırda tam bir harita
1. AppId ve Token’ ı ApplicationContext’e bildir
2. Bir MapCanvas yarat
3. Display.setCurrent() ile görüntüle
14
16. Daha Çok Çeşitlerde Harita
1) Bir MapSchemeListener yarat ve getAvailableMaps()’i çağır
2) Başarılı veya Hatalı geri dönüşleri işle
1) Geri dönen MapProviders listesine göre BaseMapType belirle
16
17. Harita dilleri
• 8 farklı dil destekleniyor, henüz Türkçe yok
• Arapça, Çince, Almanca, İngilizce,
Fransızca, İtalyanca,Rusça, İspanyolca
• ApplicationContext’ de
DefaultLanguage belirlemek yeterli
• Varsayılan dil İngilizce
17
18. Haritadaki olaylardan haberdar olmak
• MapDisplay objesinde oluşan olaylardan haberdar olmak için bir
MapComponent yaratın
• MapComponent ‘a bir EventListener ekleyin
18
20. Haritada İşaretler
• MapStandardMarker
• Çeşitli geometrik şekiller ve Balloon
• Kolayca yazı eklenebilir, renk belirlenebilir
• Varsayılan işaret ‘Nokia Mavisi’ Balloon
• MapMarker
• Genelde resim ikonlar eklemek için kullanılır
• MapFactory kullanarak yaratılırlar
20
21. Polyline ve Polygonlar
• MapPolyline birbirine bağlı noktalardan oluşur
• MapPolygon bağlı noktaların arasındaki alandır
• Tüm diğer harita objeleri gibi MapFactory ile yaratılırlar
• Bu objelerindeki GeoBoundingBox sıkça kullanacağınız
bir özellikdir
21
22. MapCanvas MapDisplay MapObject
• MapCanvas , MapFactory ve MapDisplay objelerini barındırır
• MapFactory tüm MapObject tipindeki objelerin yaratılmasında
kullanılır
• MapFactory kullanarak bir MapDisplay yaratabilirsiniz
• MapDisplay kendisi de MapObject tipinde bir objedir
• MapObject tipindeki objeler bir MapContainer içinde tutulabilir
22
24. Geocode Arama
• Adresten harita lokasyonunu arar
• Aramalar senkron veya asenkron
olabilir
• Asenkron olanı tercih edin
1. Bir GeoCodeRequestListener yaratın
2. Bir GeoCodeRequest yaratın
3. Başarılı ve başarısız dönüşde ne yapacağınıza karar verin
24
25. Geri Geocode Arama
• Coğrafik koordinatlardan adres aramadı.
• Aramalar senkron veya asenkron olabilir
• Asenkron olanı tercih edin
1. ReverseGeocodeRequestListener yaratın
2. ReverseGeoCodeRequest yaratın
3. Başarılı ve başarısız dönüşde ne yapacağınıza karar verin
25
26. Yer Arama
• Yerel aramalar
• Text arama (örnek: “Pizza”)
• Kategori arama (örnek: restaurant)
• Veya kombinasyonu (örnek: “Cake” + restaurant)
• Detaylı sonuçlar
• Haberleşme bilgileri
• Açılış zamanları
• Tanımlar, yorumlar
• Resimler...
26
27. Nasıl Yer Arama Yapılır
1. PlaceSearchRequestListener yarat
2. PlaceSearchRequest yarat
3. Başarılı ve başarısız dönüşde ne yapacağınıza karar verin
4. Detaylara Result içinden ulaşabilirsiniz
27
28. Rota Servisi
• Rota Servisi bir veya daha fazla nokta (waypoint) arasında
yol bulmak için kullanılır
• Rota servisinden cevap dönmesi zaman alabilir onun için
Rota servisi ile asenkron çalışmak daha iyidir
1. RouteListener yarat
2. RouteRequest yarat
3. Başarılı ve başarısız dönüşde ne yapacağınıza karar verin
28
29. Rota Servisi
• Yol hesaplama yöntemi RoutingMode parametreleri
değiştirilerek optimize edilebilir
• Routing Type – default is RoutingType.Shortest
• Mode of Transport – default is TransportMode.CAR
• Additional Restrictions – None are selected by default
29
30. Paylaşma Yöneticisi
• RESTful harita kütüphanesi için Kısa ve şifreli URL’ ler oluşturur
• URL SMS veya benzeri bir yöntemle aynı haritayı açmak üzere
paylaşılabilir
• İstemci yeteneklerine göre maps.nokia.com veya
m.maps.nokia.com açılır
30
32. Series 40 telefonlar ile konum bulmak
• Java uygulamaları JSR-179 Location kütüphanesi ile konum
beliryebilirler
• İki şekilde konum belirlenebilir
• Cell ID positioning
• GPS
• Series 40 telefon GPS pek çok modelde bulunmadığından Cell-
ID daha yaygın bir yöntemdir
• Harita kütüphanesinin bir parçası değildir
32
33. Cell-ID ile konum belirleme
• Yöntem bir servise cihazın o anda iletişimde bulunduğu GSM
hücresinin numarasını bildirilmesi ve servisten bunun karşılığında bir
coğrafik koordinat alınması ile gerçekleşir
• Bu yöntemin yanılma payı bölgedeki hücre sıklığına göre değişir
Cell-ID accuracy
12000
Accuracy (meters)
10000
8000
6000
4000
2000
0
Urban Suburban Rural
33
34. Cell-ID ile Konum Belirleme
1) LocationUtil kullanarak Cell-ID destekleyen bir
LocationProvider yarat
Note: getLocationProvider() ikinci parametresini şimdilik null
verebilirsiniz.
2) getLocation() çağır ve sonucu işle
QualifiedCoordinate ve GeoCoordinate arasında birebir eşleşme
vardır
34
35. LocationUtil
• Konum belirleme yöntemleri aşağıdaki
gibi kombinasyonlar olabilir
Useful Combinations
• Offline Cell ID
• Standalone GPS
• Assisted GPS
• Online Cell ID an/or WLAN
35
36. GPS ile Konum Belirleme
1. Create a GPS LocationProvider
2. Set the provider to start polling
3. Retrieve and process the result
36
37. Daha Fazla Bilgi
En son SDK ve bilgiler için
http://developer.nokia.com
Nokia Developer Java dökümanları
http://www.developer.nokia.com/Resources/Library/Java
Nokia Harita Kütüphaneleri
http://developer.nokia.com/Maps
Bu webinardaki kod örnekleri
https://github.com/gorkem/MapsWebinar
Nokia Developer Türkiye
http://developer.nokia.com/tr
http://facebook.com/NokiaDevTr
http://twitter.com/NokiaDevTr
37