Comment Google diffuse-t-il ses cartes stylisées?

14

Comme nous le savons tous, Google a changé de cartographie Web en présentant Google Maps. Au moment d'écrire ces lignes, les cartes en mosaïque sont désormais la norme avec la cartographie Web.

Par exemple, avec ArcGIS Server, vous mettez en cache autant de vos couches que possible dans les services de carte mis en cache, puis si nécessaire, vous insérez l'une de vos couches opérationnelles via des services dynamiques ou d'entités.

Une fois que vous avez un service mis en cache, il n'y a aucun moyen de modifier la cartographie sans avoir à reconstruire un nouveau cache.

La v3 API Google Maps vous permet de le style Google carrelé Basemap. L' assistant de style vous permet de bricoler presque tous les aspects de Google Map, en fonction de vos besoins.

Du point de vue de l'API, je peux comprendre comment envoyer votre demande de style dans un objet JSON.

Ce que je veux savoir, c'est comment font-ils cela à l'arrière-plan? (Ce serait bien d'inclure une référence)

Si je regarde l'assistant de style avec Firebug et que j'apporte des modifications à quoi que ce soit, je peux voir que de nouvelles demandes GET sont effectuées pour renvoyer des images PNG au client.

entrez la description de l'image ici

Il existe des variations presque infinies que vous pourriez appliquer, de sorte qu'elles ne peuvent pas avoir toutes les tuiles précuites et prêtes à servir. Par conséquent, je peux seulement supposer qu'ils créent ces tuiles à la demande?

Simon
la source
1
Je suppose que tous les différents types de fonctionnalités et les étiquettes sont des tuiles PNG transparentes précuites qui sont recolorées et fusionnées ensemble à l'arrière pour chaque demande.
blah238
Bonne théorie. Si cela est vrai, il y aurait BEAUCOUP de tuiles précuites. Pensez au nombre de tuiles de toute façon, puis au temps juste pour montrer la mer dans toutes les couleurs HEX.
Simon
2
Non, je voulais dire qu'ils seraient recolorés à la volée. Il est beaucoup plus facile de recolorer une image existante que d'interroger une géométrie réelle et d'en créer une nouvelle à partir de zéro. Bien sûr, je n'ai aucune idée de comment cela fonctionne vraiment, comme vous l'avez dit, c'est juste une théorie :)
blah238
1
C'est une bonne théorie blah238. Il leur suffirait de modifier la palette au format png plutôt que les données raster réelles.
Matthew Snape

Réponses:

9

Dans d'autres implémentations (comme dans notre implémentation ), cela se fait avec la modification de la palette; vous pouvez rapidement recolorer une image PNG sans toucher aux données réelles, si vous connaissez la palette originale complète.

Google ne fait pas cela; ils ont probablement une base de données basée sur des tuiles et des tuiles de données vectorielles qui sont tramées à la volée.

tmcw
la source
Merci tmcw. Cependant, pour une réponse correcte, j'en cherche une avec des preuves à l'appui. Peut-être que nous ne pouvons que théoriser comment ils le font.
Simon
2
Bonne chance pour trouver des preuves à l'appui pour tous les détails non liés à l'infrastructure de Google :). Cela dit, ce qui m'amène à cette conclusion (en plus des chuchotements de Googlers) est la qualité anti-aliasing entre les couleurs et la possibilité de supprimer des fonctionnalités à différents niveaux, combinées avec les cycles de restitution rapides.
tmcw
3

Je sais que ce n'est pas tout à fait ce que vous recherchez, mais j'ai pensé que vous pourriez le trouver utile de toute façon. Avez-vous vu cet exemple d'Odoe qui utilise des filtres CSS sur les cartes? Peut être limité à l'extérieur du chrome

http://www.odoe.net/apps/mapstyler/

https://github.com/odoe/MapStyler

David Wilton
la source
oui, je jouais avec ça pour apporter des antennes Bing en niveaux de gris. C'est une excellente utilisation de CSS, mais les tuiles apparaissent toujours en couleur, puis changent en X après leur chargement. Peut être un peu distrayant. Q connexe ici mais pour l'API gmaps stackoverflow.com/questions/13564712/…
Simon
2

J'ai trouvé deux brevets en posant moi-même cette question:

Rendu de carte dynamique en fonction d'un paramètre utilisateur US8103445

et

Rendu de texture basé sur la demande dans un système de rendu basé sur des tuiles US20110254852

Je n'ai pas pu trouver d'informations officielles sur qui utilise ces schémas ou des schémas similaires, mais je suppose que les dessins du deuxième article semblent assez simples à mettre en œuvre et je ne vois aucune raison pour laquelle ils n'auraient pas dû mettre en œuvre ceci ou quelque chose de plus efficace dans pendant ce temps.

mxfh
la source
Brevets intéressants. Je ne suis pas sûr qu'ils gèrent complètement le style, mais c'est une lecture intéressante.
Devdatta Tengshe