将切片坐标转换为像素到地理坐标

时间:2012-01-03 02:51:07

标签: iphone objective-c ios ipad google-maps

网上有很多类似的问题,但没有一个涉及iOS。

如果在缩放级别2(4 ^ N)和2处有16个图块(0,0),(0,1),(0,2),(1,0),(1,1)等我对美国感兴趣的瓷砖的瓷砖坐标(0,1)和(1,1)都是标准的256X256 png。这2块瓷砖代表降水图像。

为了适当地叠加我的降水数据,我需要经度和经度坐标。

This is a great link已经教会了我很多,但我仍然迷失在坐标部分。为了获得地图瓦片ex(1,1)的像素表示,我将x和y乘以256?

如果我能够找出像素到纬度/经度值的瓷砖地图坐标,我觉得我可以做到这一点。

也许有人可以引导我朝着正确的方向前进。

2 个答案:

答案 0 :(得分:1)

除非我误解,否则我必须质疑为什么要手动进行此计算。 MKMapView有四种方法可以将像素转换为坐标并返回。前两个与点有关:

- (CGPoint)convertCoordinate:(CLLocationCoordinate2D)coordinate toPointToView:(UIView *)view
- (CLLocationCoordinate2D)convertPoint:(CGPoint)point toCoordinateFromView:(UIView *)view

此外,您可以来回转换照片:

- (CGRect)convertRegion:(MKCoordinateRegion)region toRectToView:(UIView *)view
- (CGRect)convertRegion:(MKCoordinateRegion)region toRectToView:(UIView *)view

这些都可以在MKMapView参考here中找到。

答案 1 :(得分:0)

我可能已经回答了我的一个问题,虽然我没有得到我想到的结果。使用

CGPoint touchPoint = [gestureRecognizer locationInView:self.mapView];
NSLog(@"Touch point is %f %f", touchPoint.x, touchPoint.y);

我能够触摸地图周围的点并在日志声明中返回CGPoints。文档指出,根据this

,点(0,0)将始终位于西北角

我得到的实际值是(1.00000,2.00000)(在NW角落)。但同样,文档说在缩放级别0,地图将包含一个大的图块,然后相对于缩放级别呈指数级增长。我觉得我越来越接近解决方案。