¿Alguien puede explicar estas imprecisiones con MKMapView::mapRectThatFits?

Obtengo imprecisiones extrañas cuando uso MKMapView::mapRectThatFits. Si paso un MKMapRect que es más ancho que alto, esperaría que mapRectThatFits devuelva un nuevo MapRect con el mismo tramo horizontal, pero con un tramo vertical aumentado para que encaje en mapView, sin embargo, noto que MKMapView se agrega al tramo horizontal así como la vertical.

enter image description here

Esta imprecisión parece aumentar a medida que la región de coordenadas aumenta en dimensiones. A unos pocos cientos de metros, la precisión es insignificante, pero a 1.5 kilómetros, la diferencia es de 0.0006, lo que es significativo.

He intentado usar mapRectThatFits:edgePadding con edge padding establecido en cero y regionThatFits, pero ambos dan como resultado las mismas imprecisiones.

MKCoordinateRegion combinedRegion = self.models.locationModelsCoordinator.coordinateRegion;
NSLog(@"Before %f", combinedRegion.center.longitude - (combinedRegion.span.longitudeDelta * 0.5)); // Logs -0.103473

MKMapRect combinedRect = [ELMapKitUtils mapRectForCoordinateRegion:combinedRegion];
// If I convert combinedRect back to an MKCoordinateRegion here I can verify it is unaltered, so there is no issue with my conversion code.
MKMapRect focusRect = [self.mapView mapRectThatFits:combinedRect];

MKCoordinateRegion regionFittedToMapView = MKCoordinateRegionForMapRect(focusRect);
NSLog(@"After %f", regionFittedToMapView.center.longitude - (regionFittedToMapView.span.longitudeDelta * 0.5)); // Logs -0.104107

preguntado el 12 de junio de 12 a las 16:06

Vi esto en iOS 5, pero en iOS 6 desapareció con los nuevos mapas de Apple. -

Creo que la respuesta de @CyrilGodefroy es correcta. Ya no es un problema porque están usando vectores que no necesitan ser forzados a mostrarse en tamaños específicos. Ahora todo lo que debe preocuparse es que Apple Maps es tan preciso como un mapa dibujado por un perro. -

1 Respuestas

Es porque tienes mosaicos de mapa de bits. MapKit hoy se adapta al tamaño completo de los mosaicos de mapa de bits, mostrando un área horizontalmente más amplia debido a eso. Si MapKit usara mosaicos basados ​​en vectores, lo que podría hacer en una versión futura, como se demostró ayer durante el Keynote, no estaría limitado por el problema de los mosaicos de mapa de bits.

No hay solución hoy con MapKit. No miré Bing Maps o Routeme. Debería.

Respondido el 12 de junio de 12 a las 19:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.