Здравствуйте, я хочу получить текущий уровень масштабирования Google Map view
, как в состоянии проверить. Например,iOS: Как узнать уровень масштабирования GMSMapView
if(mapView.zoom==18.0)
{
//code goes here..
}
Как это получить?
Здравствуйте, я хочу получить текущий уровень масштабирования Google Map view
, как в состоянии проверить. Например,iOS: Как узнать уровень масштабирования GMSMapView
if(mapView.zoom==18.0)
{
//code goes here..
}
Как это получить?
Вы можете использовать нижеследующий код.
#define MERCATOR_RADIUS 85445659.44705395
#define MAX_GOOGLE_LEVELS 20
@interface MKMapView (ZoomLevel)
- (double)getZoomLevel;
@end
@implementation MKMapView (ZoomLevel)
- (double)getZoomLevel
{
CLLocationDegrees longitudeDelta = self.region.span.longitudeDelta;
CGFloat mapWidthInPixels = self.bounds.size.width;
double zoomScale = longitudeDelta * MERCATOR_RADIUS * M_PI/(180.0 * mapWidthInPixels);
double zoomer = MAX_GOOGLE_LEVELS - log2(zoomScale);
if (zoomer < 0) zoomer = 0;
// zoomer = round(zoomer);
return zoomer;
}
@end
Также можно использовать MKCoordinateSpan проверить document для получения дополнительной информации.
typedef struct {
CLLocationDegrees latitudeDelta;
CLLocationDegrees longitudeDelta;
} MKCoordinateSpan;
Это довольно просто. У GMSMapView есть свойство (GMSCameraPosition), свойство которого имеет свойство масштабирования.
CGFloat zoom = mapView.camera.zoom;
Обратите внимание, что свойство масштабирования является только для чтения.
Это должен быть правильный ответ – iOSAppGuy
Существует также сторонний класс, доступный https://github.com/warmshowers/warmshowers-iphone-app/blob/master/Classes/MKMapView%2BZoomLevel.m –
Код содержит все о MKMapView! Это также работает в Google Map View? Интересно. – iOSNoob
Для карты Google вы можете использовать GMSCameraPosition, чтобы получить уровень масштабирования. Посмотрите на https://developers.google.com/maps/documentation/ios/reference/interface_g_m_s_camera_position –