26 AĞUSTOS 2009, ÇARŞAMBA
Konumlandırma birden fazla işaret aynı anda göstermek için MKMapView
Benim MKMapView (0-n öğeler n genellikle 5 civarında olduğu, olabilir) eklemek istediğim bazı notlar var. Ek açıklamalar iyi ekleyebilirim, ama tüm açıklamalar ekranda aynı anda sığdırmak için Haritayı yeniden boyutlandırmak istiyorum, ve bunu yapmak için nasıl emin değilim.
-regionThatFits:
bakıyordum ama tam olarak ne olduğundan emin değilim. Şimdiye kadar var ne göstermek için bazı kod göndeririz. Bu genellikle basit bir görev olması gerektiğini düşünüyorum ama biraz şimdiye kadar MapKit ile bunalmış hissediyorum.
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{
location = newLocation.coordinate;
//One location is obtained.. just zoom to that location
MKCoordinateRegion region;
region.center = location;
//Set Zoom level using Span
MKCoordinateSpan span;
span.latitudeDelta = 0.015;
span.longitudeDelta = 0.015;
region.span = span;
// Set the region here... but I want this to be a dynamic size
// Obviously this should be set after I've added my annotations
[mapView setRegion:region animated:YES];
// Test data, using these as annotations for now
NSArray *arr = [NSArray arrayWithObjects:@"one", @"two", @"three", @"four", nil];
float ex = 0.01;
for (NSString *s in arr) {
JBAnnotation *placemark = [[JBAnnotation alloc] initWithLat:(location.latitude ex) lon:location.longitude];
[mapView addAnnotation:placemark];
ex = ex 0.005;
}
// What do I do here?
[mapView setRegion:[mapView regionThatFits:region] animated:YES];
}
Dikkat edin, bu konum bir güncelleme almak gibi olur... eğer bunu yapmak için uygun bir yer bilmiyorum. Nerede daha iyi bir yer olurdu? -viewDidLoad
?
Şimdiden teşekkürler.
CEVAP
8 AĞUSTOS 2012, ÇARŞAMBA
Neden bu kadar karmaşık?
MKCoordinateRegion coordinateRegionForCoordinates(CLLocationCoordinate2D *coords, NSUInteger coordCount) {
MKMapRect r = MKMapRectNull;
for (NSUInteger i=0; i < coordCount; i) {
MKMapPoint p = MKMapPointForCoordinate(coords[i]);
r = MKMapRectUnion(r, MKMapRectMake(p.x, p.y, 0, 0));
}
return MKCoordinateRegionForMapRect(r);
}
Bunu Paylaş:
Neden aynı ASP.NET MVC eylem için aynı...
Bir SQLite veritabanı aynı anda birden...
Nasıl aynı yazı tipi için yazı tipi bi...
Hazırda Bekletme aynı anda birden fazl...
Nasıl aynı anda birden çok istemci bir...