2016-10-16 10 views
5

मेरे पास MapView के साथ swift ऐप है। ये नक्शे के लिए कहानी बोर्ड पर अपनी सेटिंग्स हैं:क्या किसी अन्य उपयोगकर्ता इंटरैक्शन को अक्षम करते समय, केवल एक विशिष्ट क्षेत्र में ज़ूमिंग MKMapView की अनुमति देने का कोई तरीका है?

इसके अलावा, कोड में मैं कर रहा हूँ:

let regionRadius: CLLocationDistance = 10000 
let initialLocation = CLLocation(latitude: latitude, longitude: longitude) 
centerMapOnLocation(initialLocation, map: cell.mapView, radius: regionRadius) 
cell.mapView.scrollEnabled = false 
cell.mapView.rotateEnabled = false 

मेरे विधि centerMapOnLocation केन्द्रों नक्शा शुरू में एक विशिष्ट स्थान पर:

func centerMapOnLocation(location: CLLocation, map: MKMapView, radius: CLLocationDistance) { 
    let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate, 
                   radius * 2.0, radius * 2.0) 
    map.setRegion(coordinateRegion, animated: true) 
} 

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

वर्तमान में उपयोगकर्ता मानचित्र को स्क्रॉल नहीं कर सकता है, लेकिन वह इसे घुमा सकता है, वह भी मानचित्र पर कहीं भी टैप कर सकता है और यह वहां ज़ूम करेगा।

मैं उन विकल्पों को अक्षम करना चाहता हूं और प्रभाव डालता हूं, जब उपयोगकर्ता दो बार मानचित्र (या चुटकी) को टैप करता है - यह केवल प्रारंभिक स्थान पर ज़ूम करेगा।

मैं यह कैसे कर सकता हूं, और यह भी - rotateEnabled = false क्यों काम नहीं करता है?

उत्तर

3

डबल टैप कार्रवाई विधि में कोड नीचे जोड़े

var annotationPoint = MKMapPointForCoordinate(zoomToLocation.coordinate) 
var zoomRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0.1, 0.1) 
mapView.setVisibleMapRect(zoomRect, animated: true) 

यहाँ zoomToLocation अपने वांछित CLLocation है और MapView MKMapView की वस्तु है।

आशा है कि यह आपकी समस्या का समाधान करेगा :)

+0

एचएम लेकिन मैं नक्शा कैसे पास कर सकता हूं डबल टैप एक्शन विधि में देखें? वर्तमान में यह नक्शा मेरी तालिका में है दृश्य, इसलिए मेरे पास 'cellForRowAt' विधि में है, और बाहर नहीं: | – user3766930

संबंधित मुद्दे

 संबंधित मुद्दे