Я пытаюсь построить картину всего мира с набором наложенных контактов на MkMapView. Для этого я пытаюсь выполнить свой алгоритм следующим образом: сделать снимок экрана установить MkMapRegion в следующую часть карты, в настоящее время на экране сопоставляет все скриншоты, сделанные в одну общую картинку.Создание полной карты мира путем сопоставления скриншотов MKMapview
У меня проблема, поскольку MkMapView не точно центрирует карту на нужную точку, когда я меняю широту, широта, которую я установил, и тот, в котором я заканчиваю, различен (и зависит от соответствующей долготы. по долготе я, кажется, смогу сосредоточить карту на той точке, которую я хочу. Нижняя строка, которую я, похоже, не может точно воссоздать всю карту мира, поскольку в итоге я получаю слишком много или слишком мало скриншотов . вертикально
Любой человек с предложением
фрагмент кода здесь:
dispatch_queue_t _queue2 = dispatch_queue_create("com.screenShots", DISPATCH_QUEUE_SERIAL);
dispatch_async(_queue2, ^{
int maxLatitudeScreens,maxLongitudeScreens;
if (UIUserInterfaceIdiomPad==UI_USER_INTERFACE_IDIOM()){
maxLatitudeScreens=SCREENS_LATITUDE_IPAD;
maxLongitudeScreens=SCREENS_LONGITUDE_IPAD;
}else{
maxLatitudeScreens=SCREENS_LATITUDE_IPHONE;
maxLongitudeScreens=SCREENS_LONGITUDE_IPHONE;
}
@synchronized(self){
for (int j=0; j<maxLongitudeScreens;j++){
for (int i=0 ; i<maxLatitudeScreens; i++) {
double latitudeDelta=45;
double longitudeDelta=180;
double latit=55.0-j*111.0;
double longit=-180.0+i*longitudeDelta*2/maxLatitudeScreens;
CLLocationCoordinate2D newCenter= CLLocationCoordinate2DMake(latit, longit);
MKCoordinateSpan theSpan= MKCoordinateSpanMake(latitudeDelta, longitudeDelta);
MKCoordinateRegion theRegion=MKCoordinateRegionMake(newCenter, theSpan);
[_contactMapView setRegion:theRegion animated:YES];
NSLog(@"latit=%f and longit=%f",_contactMapView.centerCoordinate.latitude, _contactMapView.centerCoordinate.longitude);
NSLog(@"mapviewCenterlatitude=%f and longitude=%f",_contactMapView.centerCoordinate.latitude, _contactMapView.centerCoordinate.longitude);
NSLog(@"latitudeSpan=%f and longitudeSpan=%f",_contactMapView.region.span.latitudeDelta, _contactMapView.region.span.longitudeDelta);
sleep(3);
[self screenshot:mapViewPrintFormatter.view];
sleep(1);
}
}
//UIImageWriteToSavedPhotosAlbum ([self collateImages],nil,nil,nil);
[self collateImages];
[self shareCollatedMapViewImage];
}
});
Первоначально я попробовал это безрезультатно. Используя регион, кажется, больше контроля над тем, какой элемент карты показан. Другие идеи? – Trantor