2011-07-28 5 views
8

私はタッチイベントから座標をキャッチしようとしています。私は捕捉することができますが、ズームに大きな数字が付いているときに、これを関数に入れると、ズームでポイントをタッチするmapView

newCoord = [mapView convertPoint:location toCoordinateFromView:mapView], 

座標が間違っています。私に何ができる?

マイコード:

UITouch *touch = [touches anyObject]; 

CGPoint location = [touch locationInView:touch.view]; 


NSLog(@"locationTOUCH:%f,%f", location.x,location.y); 

CLLocationCoordinate2D newCoord; 

newCoord = [mapView convertPoint:location toCoordinateFromView:mapView]; 

NSLog(@"coordinate-%f,%f", newCoord.latitude,newCoord.longitude); 
+1

CGPoint location = [touch locationInView:touch.view]; 

を変更することで固定されなければならないと思いたいのMapViewと同じtouch.viewですか? UIGestureRecognizerを使用して地図上のタッチを検出する方が良いでしょう。 [この回答](http://stackoverflow.com/questions/4317810/how-to-capture-tap-gesture-on-mkmapview/4318835#4318835)を​​参照してください。その答えは、マップのジェスチャ認識プログラムとの干渉を避けるために、shouldRecognizeSimultaneouslyWithGestureRecognizerでYESを返す必要があるとは言いません。 – Anna

答えて

1

私はそれが

CGPoint location = [touch locationInView:mapView]; 
+0

Ortwinが正しいです:ビューの座標系はおそらく同じではないので、タッチ検出用と座標変換用の座標を使用して間違った座標が得られます。 – psycho

関連する問題