2010-07-10 6 views
1

Je travaille sur Google Tile Server. J'ai écrit un service WCF (C#) qui récupère des tuiles du serveur Google en utilisant l'URL http: - http://mt1.google.com/vt/[email protected]&hl=en&x=1&y=0&z=1&s=GalileoMise en mosaïque dans Google Tile Server (paramètres x, y et z)

Comme vous le savez, Google Tile nécessite trois paramètres variables x, y et z dans son URL pour fournir une mosaïque.

Autres coordonnées can be seen here.

Je réussis très bien à récupérer le Google Tile (Map) un par un (en mettant différentes valeurs de x, y et z).

Maintenant que j'arrive au scénario réel, j'ai essayé de développer une application WinForm (C#) pour afficher ces carreaux. Je suis capable d'afficher des tuiles one-one. Mais mon problème est ..

  1. Comment fournir un ensemble complet de cartes (différents carreaux cousus ensemble)? Je sais, je peux fournir plusieurs appels à Google Tile Server avec des paramètres différents, mais je devais savoir ce qui pourrait être la valeur appropriée de x, y & z dans des conditions différentes et relation continue que

  2. est-il tout calcul, formule ou mappage qui relie les coordonnées de l'écran aux coordonnées de Google Tile Server (signifie x, y & valeurs z)?

  3. Je dois fournir un zoom et un panoramique en douceur en faisant glisser et double-cliquez sur .. même que Google fournit.

  4. Ma préoccupation de base est la relation entre les coordonnées x, y, z de Google et mes coordonnées d'écran.

Toute aide (ou échantillons) sera très appréciée.

+0

une chance avec ceci ???? – prajakta

+0

vérifier http://greatmaps.codeplex.com/ –

Répondre

2

L'explication de ce que vous voulez faire est compliquée, et vous devez le comprendre d'une certaine façon, car les choses ne se montent pas simplement automagiquement (ce qui est regrettable dans un sens).

Même si, je l'ai trouvé le lien suivant littéralement résolu mon problème de l'ignorance, alors maintenant je peux comprendre les choses beaucoup plus facile:

http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/

Cela vous expliquera (avec quelques formules, par exemple) comment vous pouvez Obtenez vos transformations désirées.

1

Vous devez utiliser une projection Mercator pour aller de la latitude/longitude aux coordonnées des tuiles de Google Maps (zoom, x, y). Voir https://developers.google.com/maps/documentation/javascript/examples/map-coordinates pour un exemple. Vous devrez d'abord convertir Lat/Lon en un "point du monde" et, à partir de là, en fonction du niveau de zoom, vous pourrez convertir en un pixel sur l'image de carte virtuelle entière qui représente le monde entier. Connaissant la taille de la mosaïque (256 x 256), vous pouvez convertir les coordonnées de pixel en mosaïque. Inversez cette logique pour passer des coordonnées du pavé à la latitude/longitude.

1

Si vous voulez passer des coordonnées de latitude à longitude, la page de carte de bing vous donne toutes les équations dont vous avez besoin. (en supposant que tout le monde utilise une origine topleft, et des carreaux de 256x256).

http://msdn.microsoft.com/en-us/library/bb259689.aspx

si vous avez besoin d'utiliser différentes tuiles de taille, puis modifiez les constantes dans les équations.

Questions connexes