2010-03-14 5 views
2

J'ai pris une grande image et l'ai divisée en carreaux carrés (256x256). Il est également conçu pour google maps, donc l'image entière est divisée en z_x_y.png (selon le niveau de zoom).Mosaïque de carte - Quel type de projection?

z = 0 => 1x1 tuile z = 1 => 2x2 tilesthe z = 2 => tuiles 4x4

Mon IMAGEMAP est "plat" et ne repose pas sur une sphère comme le mappemonde. Je vais utiliser cette carte sur une application Windows Mobile (qui n'a pas d'API google), et tous les "points d'intérêt" sont insérés dans une base de données par longitude et latitude. Et puisque je dois faire ceci pour Windows Mobile, j'ai juste le système de coordonnées XY.

Est-il suffisant pour utiliser ceci:

MAP_WIDTH = 256*TILES_W; 
MAP_HEIGHT = 256*TILES_H; 

function convert(int lat, int lon) 
{ 
    int y = (int)((-1 * lat) + 90) * (MAP_HEIGHT/180); 
    int x = (int)(lon + 180) * (MAP_WIDTH/360); 

    ImagePoint p = new ImagePoint(x,y); // An object which holds the coordinates 

    return p; 
} 

Ou ai-je besoin d'une technique de projection?

Merci d'avance. Veuillez demander, si quelque chose n'est pas clair.

Répondre

1

Si vous souhaitez que vos points d'intérêt s'alignent correctement sur votre image, vous devez vous assurer que la projection et le système de coordonnées correspondent à ceux utilisés dans l'image. On dirait que vous avez fait l'image? Donc, vous connaissez probablement la projection? Assurez-vous simplement que convert utilise la même projection.

Je ne sais pas si c'est pertinent, mais Google Maps utilise a spherical mercator projection based on WGS84.

+0

Nous avons utilisé une projection euclédienne, donc je dois probablement l'utiliser. Merci pour la réponse. – Ikky