web-dev-qa-db-fra.com

Comment fonctionne Google Maps?

Quel est le nom de la technologie de Google Maps, ce qui permet au serveur d'envoyer uniquement la partie de la carte demandée à l'utilisateur pour améliorer les performances et existe-t-il une bibliothèque pour gérer cela?

40
ahmed

La technologie pourrait génériquement être décrite comme un serveur de carte . Le serveur de carte génère une carte pour l'emplacement demandé à partir d'un grand ensemble d'images de carrelage de carte pré-générées couvrant la planète entière. Le serveur de carte peut superposer des données d'autres bases de données en plus de cela. La combinaison d'un client de visualiseur de carte et d'une base de données géographique est traditionnellement appelée système d'information géographique (SIG).

Tout le monde peut écrire des applications Web qui incorporent Google Maps à l'aide de API Google Maps API . Il existe également un serveur de carte open source ouvert (appelé MapServer ) Si vous souhaitez déployer votre propre carte. serveur.

28
rupello

Comme il est dit, Google a généré tous ces 256x256 tuiles et est juste de servir les tuiles pertinentes. De vos commentaires, il semble que vous recherchiez quelque chose pour générer ces tuiles pour vous. Plusieurs personnes ont écrit du code pour couper une image en tuiles -, par exemple http://cazedmonkey.com/blog/googletilecutter ou http://www.klokan.cz/projects/gdal2tiles / Les deux semblent être capables de faire ce que vous recherchez.

9
Nathaniel Reinhart

Voici une belle réalisation d'une pile open source pour générer des cartes Web à partir de l'un des fondateurs de tous les éléments de tousblock.com: http://www.alistapart.com/articles/takecontrolofyourmaps

2
Drew Dara-Abrams

Vous pouvez également utiliser l'API Google Maps API avec vos propres images. Bien sûr, ils n'ont pas besoin d'être une carte; Ils peuvent être des images. Cela permettra à l'utilisateur de faire glisser et zoomer, comme dans Google Maps.

2
pkaeding

Si vous regardez le lien pour une page Google Maps, cela ressemblera à ceci:

http://maps.google.com/maps?f=q&hl=en&sll=37.0625,-95.677068&sspn=53.345014,88.769531&ie=UTF8&ll=41.226264,-81.454246&spn=0.012507,0.021672&z=16

Le code JavaScript sur la page et le code serveur utilisent les numéros du lien pour déterminer l'emplacement de la carte que vous visualisez, le niveau de zoom et la taille de votre fenêtre de visualisation pour déterminer les tuiles à envoyer à votre navigateur.

Il existe des bibliothèques commerciales qui peuvent fournir les données cartographiques ainsi que des outils à afficher et de naviguer les données. Un que j'ai vu utilisé avant est Geomicro

2
Geoff

C'est quelque chose que vous pouvez essayer vous-même avec OpenSource, http://www.geoserver.orghttp://www.openlayers.org et dernier mais non le moindre - http://geowebcache.org/

Vous devriez être capable de configurer un environnement minimal qui fait quelque chose de similaire à la Map.google dans quelques heures.

2
Jonke

Le nom générique de la discipline sous-jacente est GIS .

Demandez-vous plus de détails sur la curiosité générale ou avez-vous un besoin technique spécifique pour un projet?

1
Richard Ev

Google obtient des tirs satellites haute définition des services qui vendent ces images, elles stockent ensuite ces images et ne servent que celles requises lorsque vous regardez un certain point. C'est-à-dire que vous avez remarqué lorsque vous effectuez un zoom-in et sortie que vous pouvez voir des carreaux carrés apparaissant? Ce sont ceux de Google Server vous servent.

Vous devez également déterminer comment ils gèrent la charge avec le système de fichiers Google et MapReduce

1
Tsundoku

Ne pas répondre à la question, juste plus larges les informations. Microsoft a quelque chose appelé "Zoom profond" pour Silverlight qui facilite la tâche de faire ce genre d'effet.

C'est un fichier composer où vous avez des tuiles Upper vos photos (ou une grande image) et faites-en d'autres paramètres, puis il le brise jusqu'à beaucoup d'images plus petites dans les sous-dossiers, un dossier pour chaque zoom -level. Et puis crée une page qui peut consommer celles de manière lisse.

Une bonne entrée de blog à ce sujet: http://weblogs.asp.net/jgalloway/archive/2008/03/21/why-Silverlight-2-deep-zoom-really-is-something-new.aspx

0
Stefan

C'est juste une image énorme composée de morceaux carrés qui sont téléchargés indépédement (en utilisant AJAX et ainsi de suite). Je crois que cela se fait par une sorte de bibliothèques Google interne (pourrait être aussi GWT).

Plus sur ce sujet: http://blog.grimpotututhis.org/2005/02/mapping-google.html

0
Mike Hordecki

Je travaille sur un spectateur de navigateur croisé pour de très grands plans et impressions historiques. Une bonne aide pour les premières étapes (un ancien blog) que j'ai trouvé à http://www.cadmaps.com/gisblog/?p=7 Pour comprendre les pyramides d'image (c'est ce que Google Maps fonctionne avec) .

Avec un 'Tiler', je produis beaucoup d'images comme TestImage_0001111100.png. 0001111100 est i.e. 5ème niveau de zoom et position x/y dans la pyramide d'image. La majeure partie du calcul (images voisines, pile d'images de haut en bas) est effectuée ServerSide par PHP appelée par AJAX Demandes.

Je me débats dans le moment avec des problèmes (non insolvables) dans le déplacement et le zoom en douceur. C'est mon problème - mais lisez l'article.

0
humbleweed

Google Maps and Google Earth Utilisez quelque chose de connu sous le nom de KML ou de "langage de marquage keyhole", qui est une variante spéciale de XML. Il est nommé en hommage aux premiers satellites de géolocalisation. Vous pouvez stocker des informations sur un emplacement dans Google Earth (et il sera éventuellement ruisseler à Google Maps) en utilisant ce marquage sur Geocode ses coordonnées spécifiques de latitude et de longitude. Vous pouvez même inclure l'altitude.

0
Robert Elwell