MapKit墨卡托投影

时间:2009-12-02 12:20:41

标签: iphone mapkit

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

我需要绘制绑定到map的网格,cacheRegion.minY - 是网格中框的最小索引,通过这个我计算框的纬度和经度,我需要计算leftop框和mapview区域之间的目标。 但经过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 :(得分:0)

墨卡托投影线性地映射纬度,因此您可以从地图视图的区域属性计算坐标。

但是,MKMapView有一种方法可以将坐标从WGS84映射到屏幕:convertCoordinate:toPointToView: