我有一個經度/緯度小數座標,我想將其轉換爲適合iPad座標系統區域的點。將十進制經度/緯度座標轉換爲iPad屏幕座標
我的代碼需要經緯度座標並將它們轉換爲笛卡爾座標(基於此問題:convert to cartesian coordinates)轉換結果爲(2494.269287,575.376465)。
這裏是我的代碼(沒有編譯或運行時錯誤):
#define EARTH_RADIUS 6371
- (void)drawRect:(CGRect)rect
{
CGPoint latLong = {41.998035, -116.012215};
CGPoint newCoord = [self convertLatLongCoord:latLong];
NSLog(@"Cartesian Coordinate: (%f, %f)",newCoord.x, newCoord.y);
//Draw dot at coordinate
CGColorRef darkColor = [[UIColor colorWithRed:21.0/255.0
green:92.0/255.0
blue:136.0/255.0
alpha:1.0] CGColor];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, darkColor);
CGContextFillRect(context, CGRectMake(newCoord.x, newCoord.y, 100, 100));
}
-(CGPoint)convertLatLongCoord:(CGPoint)latLong
{
CGFloat x = EARTH_RADIUS * cos(latLong.x) * cos(latLong.y);
CGFloat y = EARTH_RADIUS * cos(latLong.x) * sin(latLong.y);
return CGPointMake(x, y);
}
我如何轉換小數座標的座標,將顯示了一個iPad屏幕上?
而不是'EARTH_RADIUS',乘以屏幕的寬度和高度。 – 2013-04-20 19:20:31
@ H2CO3 - 你是什麼意思?視網膜iPad的分辨率是2048 X 1536.我把它們放在一起,產生的座標比以前大得多。 – tentmaking 2013-04-20 19:28:09
Nah,它是1024 * 768 **點。**石英不適用於像素,它適用於點。 – 2013-04-20 19:30:23