MapKit Mercator Projection - PullRequest
       4

MapKit Mercator Projection

0 голосов
/ 02 декабря 2009

MapKit использует проекцию меркатора, как я могу преобразовать широту в координату экрана Y? Обновление: Благодарю. я использую это

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);

Мне нужно нарисовать сетку, которая привязывается к карте, cacheRegion.minY - это минимальный индекс блока в сетке, поэтому я вычисляю широту и долготу блока и мне нужно рассчитать расстояние между левым блоком и областью просмотра карты. Но после 10 градусов [map convertCoordinate: leftTopBoxCoordinate toPointToView: map]; не работа. Это хорошо

-[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

Весь журнал:

-[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

Что случилось? ты знаешь? я

1 Ответ

0 голосов
/ 02 декабря 2009

Проекция Меркатора отображает широту линейно, поэтому вы можете рассчитать координату из свойства региона вида карты.

Однако в MKMapView есть метод, который отображает координаты из WGS84 на экран: convertCoordinate:toPointToView:.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...