Intro to Apps with Maps for Series 40 (Turkish)
- 1. Nokia Series 40 için Harita ve Lokasyon
Uygulamaları Geliştirmek
Görkem Ercan (@GorkemErcan)
Nokia
1
- 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
- 12. Token ve AppID
Her bir uygulamanız için ücretsiz olarak bir App Id and Token
alın
https://api.developer.nokia.com/ovi-api/ui/registration
12
- 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