2012-01-03 5 views
0

웹에 비슷한 질문이 많이 있지만 iOS를 다루는 것은 아닙니다.타일 좌표를 픽셀로 변환하여 지형 좌표로 변환

줌 레벨 2 (4^N)에서 16 개의 타일 (0,0), (0,1), (0,2), (1,0), (1,1) 내가 미국에 관심이있는 타일 2 개는 타일 좌표가 (0,1)이고 (1,1)은 표준 256X256 png입니다. 이 2 개의 타일은 강수량 이미지를 나타냅니다.

강수량 데이터를 적절히 오버레이하려면 위도와 경도가 필요합니다.

저에게 꽤 많은 것을 가르쳐 줬지만, 여전히 좌표 부분에서 길을 잃었습니다. 지도 타일 ex (1,1)의 픽셀 표현을 얻으려면 x와 y를 256으로 곱하면됩니까?

타일 맵 좌표를 위도/경도 값의 픽셀 좌표로 계산할 수 있으면이 작업을 수행 할 수 있다고 생각합니다.

어쩌면 누군가 나를 올바른 방향으로 조종 할 수 있습니다.

답변

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에서 찾을 수 있습니다.

+0

고마워요! 그건 의미가 있습니다. 따라서 본질적으로 좌표가 (1,1) 인지도 타일은 실제로 두 번째 방법을 사용하여 2D 좌표로 변환 할 수있는 CGPoint입니다. – user1042402

+0

@ user1042402 : 가능합니다. CGPoint를 어떤 뷰에서 가져온다면 뷰와 맵 뷰를 전달할 수 있습니다. 그런 다음 CLLocationCoordinate2D를 얻습니다.이 좌표는 위도와 경도의 두 값이있는 구조체입니다. 그런 다음 해당 값을 사용하여지도 데이터를 얻을 수 있습니다. 물론 Lat/Lng 값에서 CGPoint를 가져 오는 첫 번째 방법을 사용할 수도 있습니다. –

0

글쎄, 내가 생각한 결과를 얻지는 못했지만 나의 질문 중 하나에 대답했을 수도있다. 사용하여

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

나는지도 주위의 포인트를 만지고 로그 문에서 CGPoints를 다시 얻을 수 있습니다. 문서 (0,0)은 항상 북서쪽 코너에있을 것입니다. this

실제 값은 (1.00000, 2.00000) (NW 코너)입니다. 그러나 문서에서는 확대/축소 수준 0에서 맵이 하나의 큰 타일로 구성되고 확대/축소 수준과 관련하여 기하 급수적으로 증가한다고 말합니다. 나는 메신저가 해결책에 가까워지고 있다고 느낍니다.

관련 문제