2013-05-30 18 views
7

मैं GMSMapView विस्तार करने के लिए कुछ क्लस्टरिंग कार्यों बनाने के लिए कोशिश कर रहा हूँ निकाल दिया और मैं जब नक्शा चलती उपयोगकर्ता सितारों क्लस्टर प्रतिपादन निष्क्रिय करने के लिए और इसे फिर से जब यह खत्म पुन: सक्षम करने का पता लगाने की जरूरत है।GMSMapView touchesBegan केवल एक बार

मैं touchesBegan overrided और touchesended लेकिन touchesBegan केवल एक बार कहा जाता है। hitTest अधिभावी बाद मैं यह देखने के लिए कि GMSVectorMapView GMSMapView छूता हैंडल कर रहा था और अगर मैं इस समारोह की वापसी को बदलने मैप आगे नहीं बढ़ता।

इस ईवेंट को कैप्चर करने के लिए या जब उपयोगकर्ता नक्शे के साथ सूचना का आदान प्रदान कुछ कार्रवाई देने के लिए कोई तरीका है। या क्यों/आप उन्हें कैसे पता लगाने के लिए की जरूरत है

शुभकामनाओं सहित, मार्लोन पिना Tojal

उत्तर

10

मुझे यकीन है कि मैं पूरी तरह से समझते हैं कि क्या छू लेती है आप पता लगाने के लिए की जरूरत नहीं है। हालांकि, मुझे टचस्बेन की वजह से एक GMSMapView के शीर्ष पर उपयोगकर्ता पैन जेस्चर का पता लगाने में एक ही समस्या थी: केवल एक बार कहा जा रहा है।

मैं अपने खुद के "वर्तमान स्थान" बटन/बंद पर उनके स्थान पर उपयोगकर्ता टॉगल नक्शा केंद्रित देता है कि था। मुझे पता लगाना था कि जब उपयोगकर्ता पैनिंग के मानचित्र के स्वागत में बाधा डाले बिना मानचित्र को "पैनिंग" कर रहा था (मैं अभी भी मानचित्र को पैन करना चाहता था)।

// Creates Map centered at current location 
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:theLocationManager.location.coordinate.latitude 
                 Longitude:theLocationManager.location.coordinate.longitude 
                  zoom:15]; 
theMapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; 
theMapView.myLocationEnabled = YES; 
theMapView.delegate = self; 
theMapView.camera = camera; 
self.view = theMapView; 

तो मैं एक पैन इशारा पहचानकर्ता बनाया है और theMapView के इशारे recognizers संपत्ति के लिए यह कहा:

पहले, मैं नक्शा बनाया। मैं चयनकर्ता विधि के साथ self करने का लक्ष्य रखा लगाना सुनिश्चित किया didPan:

// Watch for pan 
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget: self action:@selector(didPan:)]; 
theMapView.gestureRecognizers = @[panRecognizer]; 

अन्त में, एक ही मुख्य फ़ाइल में, मैं didPan: पद्धति लागू प्रतिक्रिया करने के लिए जब उपयोगकर्ता पैन:

- (void) didPan:(UIPanGestureRecognizer*) gestureRecognizer 
{ 
    NSLog(@"DID PAN"); 
    // React here to user's pan 
} 
+0

में वास्तव में बिल्कुल सही उत्तर में एक प्रतिनिधि विधि है। +1 –

1

नवीनतम अद्यतन क्या Google मानचित्र

- (void)mapView:(GMSMapView *)mapView didTapAtCoordinate:(CLLocationCoordinate2D)coordinate; 
संबंधित मुद्दे