Уровень масштабирования ограничен в моем приложении Google Map для iOS - PullRequest
2 голосов
/ 29 декабря 2011

Я использую следующий код для отображения центра карты на месте пользователя:

...
// start off by default current position
AppManager *appManager = [AppManager sharedManager];
MKCoordinateRegion newRegion;
newRegion.center.latitude = [appManager.currentlatitude floatValue];
newRegion.center.longitude = [appManager.currentlongitude floatValue];
newRegion.span.latitudeDelta = 0.06;
newRegion.span.longitudeDelta = 0.06;
[self.mapView setRegion:newRegion animated:YES];
[self.view insertSubview:mapView atIndex:0];
...

Дело в том, что мне не удается достаточно уменьшить уровень масштабирования при игре с "newRegion.span.latitudeDeltaзначения "и" newRegion.span.longitudeDelta ".Масштаб показывает только зону шириной около 30 км, когда я хотел бы иметь несколько сотен.

Для того, что я увидел, значение 0,06 для долготыDelta должно показывать 180 градусов (половина земли) (для широты 0), затем для широты 43, я думаю, я должен видеть больше 30 км..

Есть идеи?

1 Ответ

7 голосов
/ 29 декабря 2011

latitudeDelta и longitudeDelta находятся в градусах , поэтому значение 0,06 - это относительно небольшое расстояние в км. Чтобы показать "половину Земли", вам нужно установить longitudeDelta на 180.0.

Если вы знаете расстояние (например, в км), которое вы хотите показать, вам будет проще использовать функцию MKCoordinateRegionMakeWithDistance вместо попытки выполнить преобразование самостоятельно:

CLLocationCoordinate2D newCenter = 
    CLLocationCoordinate2DMake([appManager.currentlatitude floatValue], 
                               [appManager.currentlongitude floatValue]);

MKCoordinateRegion newRegion = 
    MKCoordinateRegionMakeWithDistance(newCenter, 200000, 200000);

Последние два параметра - latitudinalMeters и longitudinalMeters, поэтому в приведенном выше примере диапазон 200 км х 200 км.

Помните, что при просмотре карты будет корректироваться область по мере необходимости на основе пропорций вида карты и отображаемого уровня масштабирования.

...