Ich habe den folgenden Code verwendet, um die Kartenansicht zu zoomen, so dass alle Anmerkungen in der Ansicht zur gleichen Zeit bei optimaler Zoomstufe angezeigt werden. In IOS 6 scheint jedoch ein Problem mit der Zoomstufe zu bestehen. Einige Fälle prüfend, fand ich, dass 1. Wenn die Kontakte in US sind, wenn die Karte geladen wird, zoomt er wo sonst. 2. Die Zoomstufe scheint im UK-Bereich korrekt zu sein (soweit ich getestet habe). 3. Wenn ich Kontakte aus Großbritannien und den USA einschließe, werden die UK-Kontakte richtig gezoomt, aber die US-Kontakte sind nicht mehr sichtbar. Durch einen leichten Swipe wird sichergestellt, dass alle Kontakte in die Ansicht passen und ordnungsgemäß gezoomt werden.Gleichgültiges Verhalten der Zoomstufe in IOS 6 Kartenansicht
-(void)zoomToFitMapAnnotations:(MKMapView*)mapViews insideArray:(NSArray*)anAnnotationArray
{
if([mapViews.annotations count] == 0) return;
CLLocationCoordinate2D topLeftCoord;
topLeftCoord.latitude = -90;
topLeftCoord.longitude = 180;
CLLocationCoordinate2D bottomRightCoord;
bottomRightCoord.latitude = 90;
bottomRightCoord.longitude = -180;
for(MKPointAnnotation* annotation in anAnnotationArray)
{
topLeftCoord.longitude = fmin(topLeftCoord.longitude, annotation.coordinate.longitude);
topLeftCoord.latitude = fmax(topLeftCoord.latitude, annotation.coordinate.latitude);
bottomRightCoord.longitude = fmax(bottomRightCoord.longitude, annotation.coordinate.longitude);
bottomRightCoord.latitude = fmin(bottomRightCoord.latitude, annotation.coordinate.latitude);
}
MKCoordinateRegion region;
region.center.latitude = topLeftCoord.latitude - (topLeftCoord.latitude - bottomRightCoord.latitude) * 0.5;
region.center.longitude = topLeftCoord.longitude + (bottomRightCoord.longitude - topLeftCoord.longitude) * 0.5;
region.span.latitudeDelta = fabs(topLeftCoord.latitude - bottomRightCoord.latitude) * 1.1; // Add a little extra space on the sides
region.span.longitudeDelta = fabs(bottomRightCoord.longitude - topLeftCoord.longitude) * 1.1; // Add a little extra space on the sides
region = [mapViews regionThatFits:region];
[mapView setRegion:region animated:YES];
}
Nach dem mapview mit Anmerkungen in zufälligen Fällen Laden bekomme ich folgendes Protokoll
<GEOTileSource: 0x108f6470>: Error downloading tiles Server Error: Error Domain=GEOErrorDomain Code=-204 "The operation couldn’t be completed. (GEOErrorDomain error -204.)" UserInfo=0x18a5b9c0 {UnderlyingErrors=(
"Error Domain=GEOErrorDomain Code=-204 \"The operation couldn\U2019t be completed. (GEOErrorDomain error -204.)\""
)}
Was ist der Grund dafür sein könnte, und wie kann ich es beheben? Konnte nach dem googeln nichts hilfreiches finden.
Ich kann kein bestimmtes Muster für diese Zoom-Inkonsistenz identifizieren. Der obige Code funktioniert in früheren IOS-Versionen einwandfrei.
Wie kann ich dieses Problem lösen.? –
Dies ist eine konzeptionelle Frage. Sie können beispielsweise versuchen, ein Maximum an Orten anzuzeigen, die für den Benutzer am wichtigsten sind. Es hängt tatsächlich von Ihrem Anwendungsfall ab. Vielleicht möchten Sie auch auf Google Static Maps zurückgreifen oder Ihrer App einen weiteren Karten-Service hinzufügen. Es liegt an dir. – borisdiakur
Ist es nicht sowieso, dass ich es mit den Google Maps –