2010-10-20 15 views
10

पर वर्तमान स्थान को दिखाने के लिए कैसे करें मैं अपने आवेदन पर MKMapView का उपयोग कर रहा हूं। मुझे सिम्युलेटर पर वर्तमान स्थान दिखाना होगा।
क्या यह संभव है। सिम्युलेटर पर वर्तमान स्थान दिखाने के लिए।MKMapView

उत्तर

18

सिम्युलेटर में, उपयोगकर्ता के वर्तमान स्थान क्यूपर्टिनो, कैलिफोर्निया में हमेशा होता है।

आप अपने नक्शे दृश्य जोड़ने के लिए इंटरफ़ेस बिल्डर का उपयोग कर रहे हैं, तो बस मानचित्र दृश्य के लिए गुण निरीक्षक में "शो उपयोगकर्ता स्थान" चेक बॉक्स की जाँच करें। (मानचित्र दृश्य का चयन करें और गुण निरीक्षक प्रदर्शित करने के लिए command-1 टाइप करें।)

आप जोड़ने या प्रोग्राम के रूप में मानचित्र दृश्य जोड़ तोड़ कर रहे हैं, YES के लिए नक्शा दृश्य की showsUserLocation गुण सेट।


अद्यतन: ऐसा लगता है कि यह संभव है, बस का उपयोग नहीं कर नक्शा दृश्य कार्यक्षमता में बनाया गया है, और यह हमेशा काम नहीं करता। एसडीके (हिमपात तेंदुए पर चलने के लिए है जो) के

हाल संस्करणों मशीन सिम्युलेटर CLLocationManager का उपयोग कर पर चल रहा है के स्थान मिल सकता है। फिर आप मानचित्र दृश्य पर प्रदर्शित करने के लिए एनोटेशन बनाने के लिए इस स्थान का उपयोग कर सकते हैं। यह "उपयोगकर्ता के स्थान संकेतक" में कम से कम व्यवहार नहीं करेगा (कम से कम कुछ काम के बिना नहीं), लेकिन यह उपयोगकर्ता के वर्तमान स्थान को दिखाएगा।

जब इस तकनीक काम नहीं करेगा के विवरण के लिए this post देखें।

CLLocationManager और CLLocationManagerDelegate का उपयोग करने वाले नमूना कोड के लिए CLLocationManager documentation के "संबंधित नमूना कोड" अनुभाग को देखें और फिर मानचित्र दृश्य पर उपयोगकर्ता का स्थान प्रदर्शित करता है।

+0

+1 ---- ठीक रहा मेरा जवाब वापस ले लिया और यह जानकर खुशी हुई कि यह संभव है .... मुझे नई बात है .... धन्यवाद ... – Saawan

+0

कृपया मेरे प्रश्न पर एक नज़र डालें और कुछ सुझाव दें ---- और http: //stackoverflow.com/questions/3966796/are-there-any-libraries-or-examples-of-how-to-handle-ofx-on-the-iphone – Saawan

10
self.mapView.delegate = self; 
self.mapView.showsUserLocation = YES; 

यह MkMapview में वर्तमान स्थान दिखाएगा।

यदि आप इंटरफेस बिल्डर का उपयोग कर रहे हैं, तो गुण इंस्पेक्टर में, हमारे पास एक विकल्प Behaviour है जिसमें विकल्प Show User Location है, यह जांचने पर कि विकल्प भी वही होगा।

आप सिम्युलेटर में देखने के लिए सक्षम नहीं हैं, तो

  1. ओपन सिम्युलेटर में आवेदन।
  2. मेनू पट्टी से डीबग चयन करें -> स्थान -> (यदि "कोई नहीं" विकल्प चुना जाता है, इसे बदलने के लिए "कस्टम स्थान") और सेट स्थान।

CLLocationManager के साथ भी हम वर्तमान स्थान, आयात Corelocation परियोजना के लिए ढांचा

.h में फ़ाइल

#import <CoreLocation/CoreLocation.h> 
@property (nonatomic, strong) CLLocationManager *locationManager; 
@property (nonatomic, strong) CLLocation* currentLocation; 

.m में फ़ाइल

if ([CLLocationManager locationServicesEnabled]) 
    { 
     if (self.locationManager == nil) 
     { 
      self.locationManager = [[CLLocationManager alloc] init]; 
      self.locationManager.delegate = self; 
      self.locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
      self.locationManager.distanceFilter = kDistanceFilter; //kCLDistanceFilterNone// kDistanceFilter; 
     } 

     [self.locationManager startUpdatingLocation]; 
    } 

प्रतिनिधि समारोह प्राप्त कर सकते हैं :

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations 
{ 
    self.currentLocation = [locations lastObject]; 
    // here we get the current location 
} 

आशा है कि यह उत्तर आपकी मदद कर सकता है।

0

सिम्युलेटर उपयोगकर्ता वर्तमान स्थान नहीं दिखाएगा इससे कोई फर्क नहीं पड़ता कि यह आईओएस 6, 6.1 या आईओएस 7 है। स्थान अनुकरण करने के लिए आप here देख सकते हैं। आप उपयोगकर्ता वर्तमान स्थान को दिखाने के लिए फिर डिवाइस में अपने अनुप्रयोग चलाने के लिए या सिम्युलेटर सेटिंग को परिवर्तित चाहते हैं -

सिम्युलेटर के मेनू से डीबग चुनें> स्थान> कस्टम स्थान ....