मैं एक ऐप लिख रहा हूं और मेरे पास उपयोगकर्ता का स्थान दिखाने के लिए एक एम्बेडेड मानचित्रदृश्य है।कैसे मैं तेजी से उपयोगकर्ता के स्थान पर मानचित्र को केंद्रित कर सकता हूं?
class YourCurrentLocation: UIViewController, CLLocationManagerDelegate {
@IBOutlet weak var mapView: MKMapView!
var locationManager = CLLocationManager()
let regionRadius: CLLocationDistance = 1000
func checkLocationAuthorizationStatus() {
if CLLocationManager.authorizationStatus() == .AuthorizedWhenInUse {
mapView.showsUserLocation = true
centerMapOnLocation(locationManager.location!, map: mapView, radius: regionRadius)
} else {
locationManager.requestAlwaysAuthorization() //requestWhenInUseAuthorization()
}
}
func centerMapOnLocation(location: CLLocation, map: MKMapView, radius: CLLocationDistance) {
let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate,
radius * 2.0, radius * 2.0)
map.setRegion(coordinateRegion, animated: true)
}
override func viewDidLoad() {
super.viewDidLoad()
// mapView.delegate = self
if CLLocationManager.locationServicesEnabled()
{
//locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.requestAlwaysAuthorization()
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.startUpdatingLocation()
print("location enabled")
checkLocationAuthorizationStatus()
}
else
{
print("Location service disabled");
}
// Do any additional setup after loading the view.
}
}
मैं अपने plist के लिए दो प्रविष्टियां कहा::
NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription
और यह भी मेरी xcode में मैं, लंदन पर जीपीएस डेटा का अनुकरण करने के लिए ब्रिटेन की स्थापना की है यह मेरा कोड अब तक है।
जब मैं ऐप चलाता हूं - मुझे नक्शा दिखाई देता है, लेकिन लंदन को चिह्नित नहीं किया जाता है। मैं क्या गलत कर रहा हूं?
Btw, मैं इस लाइन बाहर टिप्पणी करने के लिए किया था:
//mapView.delegate = self
viewDidLoad()
में
, अन्यथा मैं त्रुटि थी:
Cannot assign value of type YourCurrentLocation to type MKMapViewDelegate
और मुझे यकीन है कि अगर समस्या का एक हिस्सा है नहीं कर रहा हूँ यहाँ।
जब मैं उपयोगकर्ता मानचित्र और उसके मानचित्र के साथ उस मानचित्र पर चिह्नित बिंदु पर प्रदर्शित होता हूं तो मैं प्रभाव प्राप्त करना चाहता हूं। क्या उसके लिए आपके द्वारा मेरी मदद की जाएगी?
'locationManager.location! 'आपके कोड में आपको सिम्युलेटर या डिवाइस का अंतिम स्थान मिलेगा, जो कुछ भी हो सकता है। मेरे उत्तर में मैं आपको वास्तविक उपयोगकर्ता स्थान प्राप्त करने के लिए 'CLLocationManagerDelegate' का उपयोग करने का तरीका दिखाता हूं। – paulvs
ठीक है, मैं देखता हूं ... धन्यवाद! एक आखिरी सवाल - एक स्थिति में क्या होगा जब फोन जीपीएस रेंज में नहीं है या स्थान अभी तक असली के रूप में प्रतिष्ठित नहीं है? – user3766930
@ user3766930 यदि आप अपनी समस्या का समाधान करते हैं तो आप उत्तर को स्वीकार कर सकते हैं। – paulvs