Archives pour l'étiquette cartographie

La 3D sur iOS par Google est là !

Google aura donc grillé la priorité à Apple pour la mise à disposition des cartes en 3D sur iOS (iPhone 4S, iPad 2 & 3) dont nous parlions ici, via une mise à jour de Google Earth pour iOS.

Mise à jour Google Earth 7.0
Mise à jour Google Earth 7.0

Pas mal d’infos dans la description de la mise à jour, mais peu de villes sont pour l’instant couvertes. Pour rappel, Google a fait le choix de la photogrammétrie pour construire ses modèles 3D et des prises de vues à 45° pour éviter les occlusions.

Pour la solution 3D d’Apple, il faudra attendre iOS 6 dans quelques mois. On pourra alors comparer les deux solutions.

S’y retrouver dans le monde des projections cartographiques

« Non, ça n’est pas la vraie taille du Groenland. »

Introduction

Une projection consiste à représenter sur deux dimensions (un feuille de papier ou un écran) une réalité qui a trois dimensions. Sur internet, les services de cartographie ne jurent principalement que par la projection de Mercator. Cette projection conserve les angles mais pas les surfaces. On parle de projection conforme.

Google Maps utilise une projection de Mercator

On voit sur l’exemple ci-dessus que le Groenland est très déformé. Plus on s’éloigne de l’équateur, plus les déformations sont importantes.

Il existe des alternatives, qui permettent de concilier au mieux « surface » et « angles » pour représenter un pays. Par exemple, en France, c’est la projection conique conforme de Lambert qui est la mieux adaptée. Elle consiste à projeter la sphère terrestre sur un cône, puis à aplatir le cône.

Une projection qui conserve les surfaces est dite équivalente.

La projection de Peters est équivalente

Ci-dessus un exemple de projection dite équivalente. Les surfaces sont conservées, mais le contour des continents est très déformé.

Il n’existe pas de projection qui permette de conserver à la fois angles et surfaces. Par contre, il existe des projections qui ne conservent ni angles ni surfaces. Elles sont dites aphylactiques. Elles peuvent parfois conserver les distances sur les méridiens.

Manipuler la Terre dans différentes projections

Gregor Aisch développe une bibliothèque de web-mapping nommée Kartograph. Elle est basée sur du 100% vecteur. Exit le concept de tuiles. Il en profite pour nous proposer une interface graphique permettant de choisir la projection souhaitée dans l’utilisation de son module de web-mapping. On peut même en extraire le script.

Exemple du module de projection de Kartograph

Je trouve le concept très pratique et a le mérite de nous montrer concrètement l’utilité des différents paramètres d’une projection. En jouant sur les curseurs bleus, la carte se déforme. En faisant un cliqué-glissé sur la carte, on peut déplacer la vue.

Au final, 27 projections différentes peuvent être affichées.

La bibliothèque Kartograph est en cours de développement, mais on aura probablement l’occasion de la passer en revue dans la pratique prochainement.

Jouer à un TowerDefense dans le mode Quest de Google Maps

Tu es geek, adepte du rétro-gaming ? Tu aimes la cartographie ? Tu es nostalgique des graphismes 8 bits ? Alors Duncan Barclay a pensé à toi !

Il a adapté le thème du Tower Defense (voir la définition sur Wikipédia) sur la couche Quest de Google Maps et en a fait un jeu avec l’API Google Maps : MapsTD.

Le principe est simple : défendre une position en plaçant des tours de défense.

  1. Tu choisis un lieu à défendre.
  2. Tu places une tour de défense en la faisant glisser à proximité du chemin bleu (disponible dans le menu de droite). La tour ne peut pas être placée SUR le chemin.
  3. Tu cliques sur Start. Des assaillants arrivent par le chemin bleu sur ta position.
  4. Si ta défense est bonne, ils sont tous détruits. Sinon tu perds de la vie.
  5. Au round suivant, soit tu économises l’argent gagné si ta défense est solide, sois tu investis dans une nouvelle tour. Il existe des tours plus ou moins puissantes, plus ou moins onéreuses, avec plus ou moins de portée. On verra plus bas que l’on peut aussi upgrader (améliorer en bon français 😉 ) les tours.

Voici une capture d’écran du jeu en défendant Toulouse :

MapsTD

Le jeu se complique au fur et à mesure, de deux façons :

  • les assaillants sont plus nombreux et plus durs à vaincre
  • de nouveaux itinéraires pour les assaillants sont ajoutés

Il faut donc ajouter des tours de défense sur les chemins existants mais aussi sur les chemins ajoutés au fil de la partie.

Il y a aussi possibilité d’améliorer les tours de défense (portée, dommages). Pour cela, on clique sur la tour, un nouveau menu apparaît. On achète les améliorations niveau par niveau (il faut acheter les niveaux 1 puis 2 puis 3 pour acheter le 4).

Si tu manques de place, tu peux dans ce même menu vendre la tour pour la remplacer par une plus puissante.

Le jeu se termine au niveau 50, on y arrive sans trop de difficultés. On peut soit continuer avec le niveau 51, soit changer de lieu en repartant de zéro.

MapsTD - Niveau 51

Attention, c’est addictif. 😉

Bon jeu !

Produire des cartes originales à partir des données OpenStreetMap

On ne présente plus OpenStreetMap, ce projet de cartographie mondial collaboratif, ouvert et donc gratuit.Logo OpenStreetMap

Il a été récemment adopté par Foursquare, Wikipedia et Apple pour son application iPhoto. (Sans citer les contributeurs d’ailleurs. Grrrr …) Microsoft avait déjà accordé l’usage de ses images Bing pour faire avancer la production de cartes, tout comme la DGFiP (Direction Générale des Finances Publiques) en proposant les feuilles de cadastre scannées ou carrément les objets vecteurs de la base PCI.

Tout ceci a grandement facilité l’évolution de la carte en France, puisque les contributions ne pouvaient à l’origine que se faire par l’enregistrement de traces GPS.

Dans certains pays (Indonésie, Bosnie …) OpenStreetMap propose des cartes plus riches que celles de Google Maps !

Que ce soit en France ou ailleurs, le rendu standard n’est pas toujours très beau et on peut avoir envie de créer des cartes originales.

J’ai retenu trois services :

MapOSMatic permet de produire un carte assez standard, avec un carroyage et une annexe comportant la liste des rues visibles sur la carte. Un exemple ici.

FranceTopo propose une cartographie orientée topographie/cartes de randonnées en combinant non seulement les données OSM mais aussi les données de la mission SRTM (Shuttle Radar Topography Mission – NASA). Cette dernière apporte un modèle numérique de terrain constitué par interférométrie radar, ce qui donne un aspect de relief à la carte et ajoute les courbes de niveau. Tous les détails sur ces données sont disponibles ici. Voici le type de rendu que l’on obtient en montagne :

Attention cependant : les données sur OpenStreetMap ne sont pas forcément fiables, notamment dans des endroits qui n’ont été cartographiés qu’une seule fois. Il serait peu prudent d’utiliser ces cartes pour préparer une randonnée en montagne. Orientez-vous plutôt vers les cartes 1/25000 de l’IGN.

Stamen propose quant à lui deux rendus beaucoup plus originaux : un en noir et blanc, dit « toner » car inspiré du rendu des imprimantes laser N&B, et un autre sous forme d’aquarelle, dit « watercolor. » Il en existe un troisième, dit « terrain » qui donne une apparence 3D à la carte. Mais il necessite des données qui ne sont pas disponibles sur la France. Ci-dessous, un exemple sur Bayonne.Comparatif entre la carte originale, le rendu watercolor et le rendu toner

Comment intégrer watercolor et toner sur un site web ?

Avec des librairies JavaScript comme OpenLayers ou l’API Google Maps.

Pour cela, il faudra mettre cette ligne en entête dans le code la page pour appeler les tuiles Stamen :

<script type="text/javascript" src="http://maps.stamen.com/js/tile.stamen.js"></script>

Avec OpenLayers

On insère ce code :

var layer = new OpenLayers.Layer.Stamen("toner");
var map = new OpenLayers.Map("element_id");
map.addLayer(layer);

On remplacera « toner » par « terrain » ou « watercolor » pour changer l’aspect de la carte. (Rappel : à l’heure où j’écris ces lignes, la classe « terrain » n’est pas disponible sur la France.)

En voici un exemple ici. Vous pouvez récupérer le code source.

Avec l’API Google Maps 

var layer = "toner";
var map = new google.maps.Map(document.getElementById("element_id"), {
    center: new google.maps.LatLng(37.7, -122.4),
    zoom: 12,
    mapTypeId: layer,
    mapTypeControlOptions: {
        mapTypeIds: [layer]
    }
});
map.mapTypes.set(layer, new google.maps.StamenMapType(layer));

Idem, on remplace la classe « toner » par « watercolor » pour obtenir l’aspect aquarelle.

En voici un exemple ici. Vous pouvez récupérer le code source. Notez qu’il n’y a plus besoin d’avoir de clé d’API pour utiliser l’API Google Maps, sauf si c’est dans un cadre commercial.

Variante : en affichant des tuiles (simples images.)

Pour ce faire, il suffit d’inclure un lien du type :

  • http://tile.stamen.com/watercolor/<zoom>/<x>/<y>.jpg
  • http://tile.stamen.com/toner/<zoom>/<x>/<y>.png (il s’agit bien de PNG et non de JPEG ici, pour ne pas avoir d’artefacts liés à la compression JPEG.)

Cette solution est plutôt adaptée pour l’application iPhone OpenMaps, pour laquelle on entrera ce lien dans les paramètres.