मेरे पास MKMapView
है जिसमें एक बहुत ही अजीब समस्या है जो समझाने के लिए कठिन है। मेरे पास MKOverlay
है जो ओवरले के बिंदुओं को फ़ाइल में सहेजकर और viewDidLoad
में ओवरले लोड करके सत्रों के बीच सहेजा जाता है।MKOverlay केवल ios5 पर अजीब परिस्थितियों के साथ सबकुछ ओवरले करता है?
कदम
- मैं नक्शे पर मानचित्र सब कुछ करने के लिए
MKOverlay
जोड़ने का ओवरले द्वारा ओवरले हो जाता है के बाद एकMKOverlay
MKMapView
- दूसरे या तीसरे रन पर करने के लिए जोड़ें: तो यहाँ समस्या है जैसा कि मैंने जोड़ा है उसी रंग । के अपवाद के साथ मानचित्र पर सबकुछ उस मानचित्र का दृश्य है जिसे आप लोड करते समय देख सकते हैं।
अन्य अजीब बातें:
- इस समस्या को केवल तब होता है जब
mapView.showsUserLocation
सच - इस समस्या को केवल
iOS5
पर होता है पर सेट है। सब कुछiOS6
पर ठीक काम करता है। - यदि आप रंगीन ओवरले को ज़ूम आउट करते हैं तो का दृश्य भाग आकार को नए स्तर पर भरने के लिए मानचित्र पर ज़ूम आउट करता है जिस पर आप ज़ूम आउट करते हैं।
इस लड़के को एक ही समस्या है, हालांकि उसका समाधान मेरे लिए काम नहीं करता है।
Trouble with overlay using MKPolyline & MKPolylineView
यहाँ है मेरी कोड के कुछ:
-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
MKPinAnnotationView *pinView = nil; //switch this to MKAnnotationView and use .image property if pins need to be images
if(annotation == self.startingPin || annotation == self.endingPin){
static NSString *defaultPinID = @"com.MagnusDevelopment.pin";
pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
if (pinView == nil)pinView = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:defaultPinID];
pinView.canShowCallout = YES;
pinView.animatesDrop = TRUE;
if(annotation == self.startingPin){
//starting pin
pinView.pinColor = MKPinAnnotationColorGreen;
}else{
//ending pin
pinView.pinColor = MKPinAnnotationColorRed;
}
}
return pinView;
}
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
{
MKPolylineView *aView = [[MKPolylineView alloc] initWithPolyline:(MKPolyline *)overlay];
aView.lineWidth = 7.0;
aView.strokeColor = [[UIColor blueColor] colorWithAlphaComponent:0.6];
return aView;
}
कोड कहा जाता है जब दृश्य लोड हो जाए, मैं निर्देशांक कि पॉलीलाइन सरणी सही इससे पहले कि वे जोड़ रहे हैं करने के लिए जोड़ा जा रहा है लॉग इन किया है, और सब कुछ ठीक और बेवकूफ है! कि समस्या क्या है के बारे में कोई भी विचार:
NSInteger numberOfSteps = pointsArray.count;
NSLog(@"number of steps: %i",numberOfSteps);
CLLocationCoordinate2D coordinates[numberOfSteps];
for (NSInteger index = 0; index < numberOfSteps; index++) {
CLLocation *location = [pointsArray objectAtIndex:index];
CLLocationCoordinate2D coordinate = location.coordinate;
coordinates[index] = coordinate;
}
MKPolyline *polyLine = [MKPolyline polylineWithCoordinates:coordinates count:numberOfSteps];
[self.mainMap addOverlay:polyLine];
यहाँ क्या होता है जब ओवरले दिखाई नहीं देता और नक्शे पर ओर करने के लिए उपयोगकर्ता पैन की एक तस्वीर है?
समस्या अभी भी हो रही है .... – Shredder2794
एचएम, आप मानचित्र और रेखाएं कब बना रहे हैं? चूंकि आपने कहा था कि यह तब होता है जब उपयोगकर्ता का स्थान चालू होता है, मानचित्र के कंटेनर व्यू के दृश्य विल्लएपियर के दौरान मानचित्र और पॉलीलाइनों का निर्माण करने का प्रयास करें, फिर मानचित्र के शो यूज़र लोकेशन को YID को viewDidAppear के दौरान सेट करें। – poetmountain
यह काम करता है! आपको बहुत - बहुत धन्यवाद! आपको इस समस्या के साथ भविष्य में लोगों के लिए इन टिप्पणियों में दिए गए उत्तर को फिट करने के लिए अपना उत्तर संपादित करना चाहिए! – Shredder2794