2011-07-28 15 views
8

Dokunma olayından bir koordinat yakalamaya çalışıyorum. Ben yakalamak ama ne zaman vermek yakınlaştırma büyük sayılar var ve bir fonksiyon içerisine koyduğumuzdaYakınlaştırmalı harita ile nokta temasGiriş

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

Yanlış koordinatlarını alabilirsiniz. Ne yapabilirim?

Kodum:

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

için

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

değiştirerek sabit olmalıdır tahmin ediyorum? Haritadaki dokunmaları algılamak için bir UIGestureRecognizer kullanmak daha iyi olabilir. [Bu cevap] bölümüne bakın (http://stackoverflow.com/questions/4317810/how-to-capture-tap-gesture-on-mkmapview/4318835#4318835). Bu cevap, haritanın jest tanıyıcılarıyla etkileşime girmekten kaçınmak için, YES'i aynı zamanda Yararlanıcı Eşzamanlı OlarakGithureRecognizer ile döndürmeniz gerektiğini de belirtmez. – Anna

cevap

1

Ben MapView aynı touch.view mı

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

Ortwin haklı: Görüşlerin koordinat sistemleri muhtemelen aynı değil, bu yüzden bir tane dokunma algılaması için yanlış koordinatlar ve diğer koordinat dönüşümleri için de bu yüzden yanılıyorsunuz. – psycho