0

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

发生了什么?你知道吗?我

4

1 回答 1

0

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

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

于 2009-12-02T12:30:47.577 回答