2009-12-02 4 views
0

MapKit utilise la projection mercator, comment puis-je convertir la latitude en coordonnées écran Y? Mise à jour: Merci. je l'utiliseProjection MapKit mercator

CLLocationCoordinate2D leftTopBoxCoordinate; 
leftTopBoxCoordinate.longitude=-180+cacheRegion.minX*boxSize; 
leftTopBoxCoordinate.latitude=85-cacheRegion.minY*boxSize; 
CGPoint leftTopPoint = [map convertCoordinate:leftTopBoxCoordinate toPointToView:map]; 

int boxDY=leftTopPoint.y; 
int boxDX=leftTopPoint.x; 
NSLog(@"\nL:%f,G:%f\nDX:%d,DY:%d\n",topLeft.latitude,topLeft.longitude,boxDX,boxDY); 

je dois dessiner la grille qui se lient à la carte, cacheRegion.minY - est l'indice minimal de la case dans la grille, par ce que je calcule la latitude et la longitude de la boîte et je dois calculer destance entre boîte de leftop et la région mapview. Mais après 10 degrés [map convertCoordinate: leftTopBoxCoordinate toPointToView: map]; ne fonctionne pas. Cette bonne

-[GridOverlay drawRect:]: 
L:80.058050,G:-180.000000 
DX:0,DY:-56 
This bad 
-[GridOverlay drawRect:]: 
L:79.432371,G:-180.000000 
DX:0,DY:28 

All Log:

-[GridOverlay drawRect:]: 
L:85.000000,G:-180.000000 
DX:0,DY:0 
-[GridOverlay drawRect:]: 
L:80.058050,G:-180.000000 
DX:0,DY:-56 
-[GridOverlay drawRect:]: 
L:79.432371,G:-180.000000 
DX:0,DY:28 

Qu'est-ce happend? savez-vous? i

Répondre

0

La projection de Mercator mappe linéairement la latitude, de sorte que vous pouvez calculer la coordonnée à partir de la propriété de la région de la carte. Cependant, MKMapView a une méthode qui mappe les coordonnées de WGS84 à l'écran: convertCoordinate:toPointToView:.

+0

s'il vous plaît voir ma mise à jour. –