Table Of Content978-2-10-055682-3
Table des matières
Avant-propos................................................................ IX
Première partie– L’API Google Maps version 3
Chapitre1–Lesconcepts.................................................... 3
1.1 CartographiedynamiquesurleWeb ...................................... 3
1.2 L’interactionclient/serveur............................................... 4
1.2.1 AJAX.............................................................. 4
1.2.2 GoogleMaps,lemeilleurexempled’applicationAJAX..................... 5
1.3 Environnementdedéveloppement........................................ 5
1.4 ServeurHTTPetscriptingcôtéserveur................................... 6
1.5 Langagesdeprogrammation.............................................. 6
1.5.1 HTML............................................................. 7
1.5.2 JavaScript........................................................... 7
Chapitre2–Débuteravecl’API GoogleMaps ................................ 9
2.1 Retourhistoriquesurl’API............................................... 9
2.1.1 Cinqansdéjà!...................................................... 9
2.1.2 Denombreusesfonctionnalités......................................... 13
2.1.3 APIversion3....................................................... 14
IV DévelopperaveclesAPIGoogleMaps
2.2 Premièrecarte.......................................................... 15
2.2.1 Initialisation......................................................... 15
2.2.2 Optimisationpoursmartphone......................................... 18
2.3 L’élémentprincipal:l’objetMap.......................................... 19
2.3.1 Lescontrôles........................................................ 19
2.3.2 Propriétésdel’objetMap.............................................. 23
2.3.3 Événementssurl’objetMap........................................... 26
2.3.4 Méthodesdel’objetMap.............................................. 30
2.4 DocumentationGoogleMaps............................................ 33
Chapitre3–Afficherdesdonnées............................................ 35
3.1 Marqueursetinfobulles.................................................. 35
3.1.1 Initialisation......................................................... 36
3.1.2 Paramètresdumarqueur.............................................. 37
3.1.3 Icônesdumarqueur.................................................. 40
3.1.4 Événementssurlesmarqueurs......................................... 42
3.1.5 Méthodessurlesmarqueurs........................................... 49
3.1.6 Infobulles........................................................... 57
3.2 Polylignes.............................................................. 66
3.2.1 Propriétés........................................................... 67
3.2.2 Événements......................................................... 69
3.2.3 Méthodes........................................................... 71
3.2.4 ClasseMVCArray................................................... 72
3.3 Polygones.............................................................. 73
3.3.1 Propriétésdespolygones............................................... 74
3.3.2 Méthodesetévénements............................................... 76
3.4 KML................................................................... 77
3.4.1 Introductionauformat................................................ 77
3.4.2 Construction........................................................ 78
3.4.3 Propriétés........................................................... 78
3.4.4 Méthodesetévénements............................................... 79
3.5 Ajouterdespointsprovenantd’unebasededonnées........................ 80
3.5.1 Préparationdelabasededonnées....................................... 80
Tabledesmatières V
3.5.2 ScriptPHP ......................................................... 82
3.5.3 Côtéclient.......................................................... 82
Chapitre4–Lesservices..................................................... 87
4.1 Géocodage............................................................. 87
4.1.1 Construction........................................................ 88
4.1.2 Spécificationsdelaréponse............................................ 89
4.1.3 Exempledegéocodage................................................ 89
4.2 Itinéraire............................................................... 90
4.2.1 Constructionduservice............................................... 91
4.2.2 Exemplesd’application................................................ 92
4.3 Altitude................................................................ 94
4.4 StreetView............................................................. 96
4.4.1 ImplantationdansGoogleMaps........................................ 96
4.4.2 Utilisationdupanoramaendehorsdelacartographie...................... 98
Chapitre5–Exempled’application........................................... 101
5.1 Plates-formescibles...................................................... 101
5.2 Applicationweb........................................................ 102
5.2.1 PréparationHTML.................................................. 102
5.2.2 L’APIKeolis ........................................................ 104
5.2.3 Affichagedesstationssurlacarte....................................... 105
5.2.4 Affichagedesstationssurlacarte....................................... 108
5.2.5 Optimisationpoursmartphones........................................ 109
Deuxième partie– Utiliser les API sur les périphériques mobiles
Chapitre6–Introduction.................................................... 115
6.1 Présentationducontexte ................................................ 115
6.2 LessystèmesAndroidetiOS............................................. 116
6.2.1 iOS ............................................................... 116
6.2.2 Android............................................................ 117
VI DévelopperaveclesAPIGoogleMaps
Chapitre7–iOSpouriPhone etiPad......................................... 121
7.1 Installationdel’environnementdedéveloppement ........................ 121
7.1.1 Prérequisaudéveloppementd’applicationpouriOS ....................... 121
7.1.2 InstallationduSDK.................................................. 122
7.1.3 Unepremièreapplication.............................................. 123
7.2 AjouterunecarteaveclescomposantsintégrésdansleSDK ................ 125
7.2.1 AjoutduframeworkMapKit........................................... 125
7.2.2 Ajoutd’uncontrôleurdevue........................................... 125
7.2.3 Miseenplaced’unecarte.............................................. 127
7.3 Manipulationdescartes ................................................. 129
7.3.1 Choisirletypedecarte................................................ 129
7.3.2 Zoomer............................................................. 130
7.3.3 Centrerlacarteetfixerunniveaudezoom............................... 130
7.3.4 Insérerdesmarqueurs................................................ 132
7.3.5 Ajouterdespolylignessurunecarte..................................... 136
7.3.6 Ajouterdescerclessurunecarte........................................ 137
7.3.7 Ajouterdespolygonessurunecarte..................................... 139
7.4 InteractionaveclerécepteurGPS........................................ 140
7.4.1 Récupérationdescoordonnéesdel’utilisateur............................. 140
7.4.2 Legéocodageinverse ................................................. 141
Chapitre8–Android........................................................ 145
8.1 Installationdel’environnementdedéveloppement......................... 145
8.1.1 SDKAndroid....................................................... 145
8.1.2 Installationd’Eclipse.................................................. 146
8.1.3 Plug-inAndroidpourEclipse .......................................... 146
8.1.4 LecélèbreHelloWorld!............................................... 148
8.2 AjouterunecarteaveclescomposantsintégrésdansleSDK................. 151
8.2.1 MD5checksum...................................................... 151
8.2.2 GénérationdelacléAPI.............................................. 151
8.2.3 Créationdelacarte .................................................. 152
8.2.4 Testssurletéléphone................................................. 157
8.3 Manipulationdescartes.................................................. 158
8.3.1 Ajouterdesmarqueurs................................................ 158
Tabledesmatières VII
8.3.2 Changerletypedecartes.............................................. 160
8.3.3 Autrescontrôles..................................................... 160
8.4 InteractionaveclerécepteurGPS........................................ 160
8.4.1 LaclasseLocationManager............................................ 161
8.4.2 InteractionentrelacarteetleGPS ..................................... 161
8.5 Événements............................................................ 162
8.6 Interactionclient/serveur................................................ 164
8.6.1 Servicesweb ........................................................ 164
8.6.2 XMPP............................................................. 168
ANNEXES
AnnexeA–OpenLayers,une alternativeàGoogleMaps....................... 173
AnnexeB–APIstatiques.................................................... 193
Index....................................................................... 215
Avant propos
Le marché de la géolocalisation est en pleine effervescence, comme le prouve
l’annoncedelancementparFacebook,enaoût2010,desonservicePlaces,quipermet
departagersapositiongéographiqueavecsesamis,maisaussi,etc’esttrèsprobable,
avecdesannonceurs...
Lacarteatoujoursétéunoutildepouvoir–quecesoitàuneéchellelocalepour
calculerlemontantdel’impôtchezlesÉgyptiensouencoreàgrandeéchellepourla
dominationmaritimemondialelorsdesexplorationsmaritimesduXVe siècle.
L’évolution de la technique, l’apparition de l’informatique le siècle dernier et
l’impressionnantedémocratisationdel’Internetontencorerenforcélaplacecentrale
delacartedansnotresociété.Google,enmettantàdispositiondumondeentieretde
manièregratuiteunecartographiemondialedétaillée,agrandementfavorisél’essorde
cettenouvelletechniquequ’estlacartographiedynamique(ouwebmapping).Google
Mapsenestl’exempleleplusconnuetreprésentatif.
La force de Google a été de donner aux développeurs web, dès juin 2005, la
possibilitéd’ajouterleursproprescartesetcréationsvial’utilisationd’uneinterfacede
programmationJavaScript.Lesuccèsfutalorsimmédiat,etdesmilliersdesitesweb
utilisentceservicepourenrichird’unetouchegéographiqueleurcontenu.
Depuis2005,Internetabeaucoupévolué,etl’apparitiondespériphériquesmobiles
de type smartphones est un fait majeur de ces cinq dernières années. La capacité
de ces nouveaux outils à naviguer sur la toile a favorisé l’essor de nombreuses
applications,autrefoisdestinéesauxseulsordinateursdebureau–etbeaucoupd’entre
ellesembarquentunecarte.
Nousallonsdécouvrirdanscetouvragetoutd’abordcommentutiliserl’APIGoogle
Maps pour développer des applications web classiques, puis dans la seconde partie,
nousaborderonsledéveloppementd’applicationsspécifiquesdestinéesauxtéléphones
mobilesiPhoneetAndroid.
X DévelopperaveclesAPIGoogleMaps
Àquis’adressecelivre ?
Celivreestdestinéprincipalementauxdéveloppeursdesiteswebquisouhaiteraient
enrichirleurspageswebdecartesdynamiques.UneconnaissancedeslangagesHTML
et JavaScript est donc souhaitable pour tout internaute désireux d’apprendre ou
d’approfondirlesdifférentesAPIGoogleMaps.
Cependant,avecl’émergenceactuelledessmartphones,nousnepouvionsignorer
le développement d’applications cartographiques sur ces plateformes particulières.
C’estpourquoilasecondepartiedel’ouvrageestdestinéeauxdéveloppementssous
iOSetAndroid,pourlesquelsuneconnaissancedesSDKspécifiquesàcessystèmes
d’exploitationetd’unlangagedeprogrammationseranécessaire.
Detouteslesmanières,unefamiliaritéavecGoogleMapsentempsqu’utilisateur
est souhaitable, et un intérêt pour la représentation de données géographiques sur
Internetserontbiensûrunplus...
Supplémentsweb
Lesitewww.geotribu.net/dunodprésentelaplupartdesexemplesdedémonstration
decetouvrage,maisaussil’applicationcomplèteétudiéeauchapitre5.Lesexemples
sontactifs,cequipermettraaulecteurdevisualiserenregardlecodeetsonrésultat.
Remerciements
L’écrituredecelivren’auraitpasétépossiblesansl’aideprécieused’ArnaudVanDe
Casteele,cofondateurdusiteGeoTribuetavecquinouséchangeonsrégulièrement
surlewebmapping,lesnouvellestechnologiesInternetetbiend’autreschosesencore.
MerciArnaud!
Nous remercions également Laurent Jégou pour sa disponibilité et son aide
techniquedetouslesjours.
Enfin,celivren’auraitpuêtrepubliésansl’intérêtpoursonsujetexpriméparnotre
éditeur,Jean-LucBlanc.Qu’ilsoitremerciéicipoursaconfianceetsonimplication
danslaréalisationdeceprojet.