카메라 및 뷰

플랫폼 선택: Android iOS JavaScript

iOS용 Maps SDK를 사용하면 사용자가 지도를 바라보는 시점을 변경할 수 있습니다. 지도를 변경할 수 있습니다.

iOS용 Maps SDK를 사용하면 사용자가 상황에 맞는 방향으로 조정할 수 있습니다. 모든 확대/축소 사용자가 지연 시간을 최소화하면서 지도를 이동하거나 시점을 변경할 수 있습니다.

카메라를 변경해도 내가 만든 마커, 다중선, 기타 그래픽은 변경되지 않습니다. 더 잘 알 수 있도록 이러한 추가사항을 변경하는 것이 좋습니다. 할 수 있습니다.

지도의 보기

iOS용 Maps SDK에서는 Mercator를 사용하여 프로젝션 을 사용하여 기기의 화면 (평면)에 지표면 (구)을 표시합니다. 기준)입니다.

카메라 위치

지도뷰는 평면을 내려다보는 카메라로 모델링됩니다. 카메라의 위치(및 이에 따른 지도의 렌더링)는 타겟(위도/경도 위치), 방위, 기울기, 확대/축소 속성으로 지정됩니다.

카메라 속성 다이어그램

타겟(위치)

카메라 타겟은 지도 중앙의 위치에 해당되며 위도와 경도 좌표로 지정됩니다.

위도는 -85도 이상 85도 이하로 설정할 수 있습니다. 이 범위보다 크거나 작은 값은 범위 내의 가장 가까운 값으로 고정됩니다. 예를 들어 위도를 100으로 지정하면 값이 85로 설정됩니다. 경도는 -180도 이상 180도 이하로 설정할 수 있습니다. 이 범위보다 크거나 작은 값은 범위(-180, 180) 내에 속하도록 조정됩니다. 예를 들어 480, 840, 1,200은 120도로 조정됩니다.

방위(방향)

카메라 방위는 나침반 방향을 지정하며, 지도의 상단 가장자리에 해당하는 진북에서부터 측정됩니다(단위: 도). 지도의 중앙에서 지도의 상단 가장자리까지 수직선을 그렸을 때 진북을 기준으로 한 카메라의 방향(단위: 도)이 방위에 해당합니다.

방위가 0이면 지도 상단이 진북을 가리킵니다. 방위 값이 90이면 지도 상단이 정동을 가리킵니다(나침반의 90도). 값이 180이면 지도 상단이 정남을 가리킵니다.

지도 API를 사용하면 지도의 방위를 변경할 수 있습니다. 예를 들어 차량 운전자는 도로 지도를 돌려서 자신의 이동 방향에 맞출 때가 많은 반면, 지도와 나침반을 사용하는 도보 여행자는 대체로 수직선이 북쪽을 향하도록 지도의 방향을 바꿉니다.

기울기(시야각)

기울기는 지도의 중앙 지점 바로 위에 있는 원호상에서 카메라 위치를 정의하며 천저(카메라 바로 아래를 가리키는 방향)에서부터 측정됩니다(단위: 도). 0은 수직으로 아래를 가리키는 카메라에 해당합니다. 0보다 큰 값은 지정된 각도로 지평선을 향해 기울어진 카메라에 해당합니다. 시야각을 변경하면 지도가 원근법으로 표시되어 멀리 있는 지형지물은 더 작게 표시되고 가까이 있는 지형지물은 더 크게 표시됩니다. 다음 그림은 이러한 원근법을 보여줍니다.

아래 이미지에서 시야각은 0도입니다. 첫 번째 이미지는 이를 개략적으로 보여줍니다. 위치 1은 카메라 위치, 위치 2는 현재 지도의 위치에 해당합니다. 그 결과 나타나는 지도는 아래와 같습니다.

확대/축소 수준 18, 카메라가 시야각 0도로 배치된 지도의 스크린샷
카메라의 기본 시야각으로 표시되는 지도
0도의 각도로 지도 위치 바로 위에 배치된 카메라의 기본 위치를 보여주는 다이어그램
카메라의 기본 시야각

아래 이미지에서 시야각은 45도입니다. 카메라는 바로 위(0도)와 지상(90도) 사이의 원호를 따라 위치 3으로 절반쯤 이동합니다. 카메라는 여전히 지도의 중심점을 가리키지만 이제 위치 4에서 선으로 표시되는 영역이 보입니다.

확대/축소 수준 18, 카메라가 시야각 45도로 배치된 지도의 스크린샷
45도의 시야각으로 표시되는 지도
확대/축소 수준이 여전히 18로 설정된 상태에서 45도로 설정된 카메라의 시야각을 표시하는 다이어그램
45도의 카메라 시야각

이 스크린샷에서 지도의 중앙은 원래 지도와 동일한 지점에 중심이 맞추어져 있지만 지도 상단에서는 더 많은 지형지물이 표시되어 있습니다. 시야각을 45도 이상으로 올리면 카메라와 지도 위치 사이의 지형지물이 그에 비례하여 크게 표시되는 반면, 지도 위치 너머에 있는 지형지물은 그에 비례하여 작게 표시되어 입체적 효과를 줍니다.

확대/축소

카메라의 확대/축소 수준이 지도의 축척을 결정합니다. 확대/축소 수준이 높을수록 더욱 상세한 화면을 볼 수 있는 반면, 확대/축소 수준이 낮을수록 더 넓은 영역을 화면에 표시할 수 있습니다. 확대/축소 수준이 0일 때 지도의 축척은 전 세계의 너비는 약 256포인트입니다.

확대/축소 수준을 1씩 올리면 화면에서 전 세계의 너비는 두 배가 됩니다. 따라서 확대/축소 수준이 N일 때 지구의 너비는 근사치입니다. 256 * 2N포인트입니다. 예를 들어 확대/축소 수준이 2라면 전 세계는 대략적으로 너비는 1024포인트입니다.

확대/축소 수준은 정수가 아니어도 됩니다. 지도에서 허용되는 확대/축소 수준의 범위는 대상, 지도 유형, 화면 크기 등 여러 가지 요소에 따라 달라집니다. 범위를 벗어난 모든 숫자는 그 다음으로 유효한 근사치로 변환됩니다. 이 값은 최소 확대/축소 수준 또는 최대 확대/축소 수준일 수 있습니다. 다음 목록은 각 확대/축소 수준에서 기대할 수 있는 세밀한 정도의 대략적인 수준을 보여줍니다.

  • 1: 세계
  • 5: 대륙
  • 10: 도시
  • 15: 거리
  • 20: 건물
다음 이미지는 다양한 확대/축소 수준을 시각적으로 표시한 것입니다.
확대/축소 수준이 5인 지도의 스크린샷
확대/축소 수준이 5인 지도
확대/축소 수준이 15인 지도의 스크린샷
확대/축소 수준이 15인 지도
확대/축소 수준이 20인 지도의 스크린샷
확대/축소 수준이 20인 지도

초기 카메라 위치 설정

초기 카메라 위치를 GMSCameraPosition 객체를 사용하면 타겟의 위도 및 경도를 설정하고 확대/축소가 가능합니다.

초기 카메라 위치를 설정하려면 GMSMapViewOptions 객체를 만들고 camera 속성을 GMSCameraPosition로 설정합니다. 그런 다음 옵션을 GMSMapView 편의 생성자를 사용합니다.

Swift

let options = GMSMapViewOptions()
options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 16)
let mapView = GMSMapView(options:options)

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:16];
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

기본 UIView 초기화를 사용하여 GMSMapView 객체를 만들 수도 있습니다. 메서드를 사용하여 축소하도록 요청합니다. 이 경우 카메라 위치는 기본 위치에서 시작하며 변경할 수 있습니다

Swift

let options = GMSMapViewOptions()
options.frame = self.view.bounds
let mapView = GMSMapView(options:options)

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.frame = self.view.bounds;
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

카메라 위치 변경

카메라 위치를 프로그래매틱 방식으로 변경하여 위치를 설정할 수 있습니다. 확대/축소가 가능합니다. GMSMapView가 제공하는 여러 메서드를 함께 사용하면 카메라 위치를 변경하는 데 사용할 수 있습니다. 일반적으로 GMSCameraPosition 또는 GMSCameraUpdate:

  • GMSCameraPosition 모든 카메라 위치를 변경하는 데 사용하는 속성과 메서드를 포함합니다. 매개변수: 대상, 방위, 기울기 및 확대/축소.

  • GMSCameraUpdate 대상, 방위, 기울기 및 확대/축소를 변경할 수 있을 뿐만 아니라 스크롤, 고급 확대/축소, 중앙 정렬을 지원하는 편리한 메서드를 사용합니다. 사전 정의된 경계 내에서 카메라를 보호할 수 있습니다

카메라를 이동할 때 '맞추기'를 선택할 수 있습니다. 카메라를 새 위치를 나타냅니다. 즉, 애니메이션이 없거나 이동을 애니메이션으로 처리합니다. 예를 들어 카메라의 대상 위치 변경을 애니메이션으로 표시하면 애니메이션이 시작 지점에서 이전 위치를 새 위치로 이전합니다.

애니메이션은 현재 카메라 속성과 새 카메라 속성 사이에 삽입됩니다. Core(핵심) 요소를 사용하여 애니메이션의 길이를 제어할 수 있습니다. 애니메이션을 사용합니다.

GMSCameraPosition 사용

카메라 변경 방법 GMSCameraPosition님, 새 객체를 만들거나 기존 객체를 복사한 다음 GMSMapView 객체. GMSCameraPosition 객체를 사용하여 카메라 맞추기 애니메이션의 유무와 관계없이 새 위치를 지정합니다.

GMSCameraPosition 객체를 사용하여 다음과 같은 카메라 속성을 구성합니다. 위도, 경도, 확대/축소, 방위 및 시야각 그런 다음 해당 객체를 사용하여 GMSMapViewcamera 속성을 설정합니다.

Swift

let fancy = GMSCameraPosition(
  latitude: -33,
  longitude: 151,
  zoom: 6,
  bearing: 270,
  viewingAngle: 45
)
mapView.camera = fancy
      

Objective-C

GMSCameraPosition *fancy = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                       longitude:151.2086
                                                            zoom:6
                                                         bearing:30
                                                    viewingAngle:45];
[mapView setCamera:fancy];
      

기본값으로 설정할 GMSCameraPosition 속성을 생략합니다.

이동에 애니메이션을 적용하려면 animateToCameraPosition: 메서드를 사용하는 대신 camera 속성을 설정합니다.

GMSCameraUpdate 사용

GMSCameraUpdate 를 사용하면 카메라 위치를 업데이트하고 맞추기 또는 애니메이션 처리 여부를 선택할 수 있습니다. 확인할 수 있습니다. GMSCameraUpdate의 장점은 편의성입니다. 다음과 같은 작업을 할 수 있습니다. GMSCameraPosition를 사용하여 GMSCameraUpdate와 동일한 작업을 실행하지만 GMSCameraUpdate는 추가 도우미 메서드를 제공하여 카메라를 조작할 수 있습니다.

예를 들어 GMSCameraPosition를 사용하여 현재 확대/축소 수준을 증가시키려면 다음을 실행합니다. 먼저 현재 확대/축소 수준을 결정한 다음 GMSCameraPosition 객체입니다. 여기서 확대/축소를 1보다 큰 값으로 설정합니다. 현재 확대/축소 수준입니다.

또는 zoomIn: 메서드로 GMSCameraUpdate 객체를 구성합니다. 그런 다음 GMSCameraUpdate 객체를 GMSMapView animateWithCameraUpdate: 메서드를 사용하여 지도 가장자리에 패딩을 추가할 수 있습니다.

Swift

// Zoom in one zoom level
let zoomCamera = GMSCameraUpdate.zoomIn()
mapView.animate(with: zoomCamera)
      

Objective-C

// Zoom in one zoom level
GMSCameraUpdate *zoomCamera = [GMSCameraUpdate zoomIn];
[mapView animateWithCameraUpdate:zoomCamera];
      

GMSMapView moveCamera: 메서드를 사용하여 카메라를 새 위치에 맞춥니다. 하세요.

다음 예에서는 GMSCameraUpdate를 사용하여 카메라의 움직임에 애니메이션을 적용합니다. 밴쿠버를 중심으로 했습니다.

Swift

// Center the camera on Vancouver, Canada
let vancouver = CLLocationCoordinate2D(latitude: 49.26, longitude: -123.11)
let vancouverCam = GMSCameraUpdate.setTarget(vancouver)
mapView.animate(with: vancouverCam)
      

Objective-C

// Center the camera on Vancouver, Canada
CLLocationCoordinate2D vancouver = CLLocationCoordinate2DMake(49.26, -123.11);
GMSCameraUpdate *vancouverCam = [GMSCameraUpdate setTarget:vancouver];
[mapView animateWithCameraUpdate:vancouverCam];
      

GMSCameraUpdate 객체 구성

메서드 중 하나를 사용하여 GMSCameraUpdate 객체를 구성합니다.

zoomIn:zoomOut:
현재 확대/축소 수준을 1.0씩 변경하되 다른 모든 속성은 동일합니다.
zoomTo:
다른 모든 설정은 유지하면서 확대/축소 수준을 특정 값으로 변경합니다. 속성이 동일합니다.
zoomBy:
확대/축소 수준을 늘립니다 (값이 음수인 경우 감소) 곱합니다.
zoomBy:atPoint:
지정된 지점의 배치할 수 있습니다.
setTarget:
유지한 채 카메라의 위도와 경도를 변경합니다. 기타 모든 속성입니다.
setTarget:zoom:
카메라의 위도, 경도, 확대/축소를 변경합니다. 다른 모든 속성은 보존됩니다.
setCamera:
GMSCameraPosition를 설정합니다.
scrollByX:Y:
카메라의 위도와 경도를 변경하여 지도를 이동합니다. 지정된 포인트 수로 계산됩니다. 양의 x 값은 카메라를 오른쪽으로 이동하여 지도가 지면 위로 이동한 것처럼 보이도록 님이 나갔습니다. 양수 y값을 적용하면 카메라가 아래로 이동하여 지도가 위로 올라간 것 같습니다. 스크롤이 카메라의 현재 있습니다. 예를 들어 카메라의 방위가 90도라면 동쪽은 '위'입니다.
fitBounds:
화면의 지정된 경계가 다음 위치의 중앙에 오도록 카메라를 변환합니다. 가능한 최대 확대/축소 수준입니다. 기본값 적용 64포인트 경계에 패딩을 추가합니다.
fitBounds:withPadding:
지정된 경계를 중앙에 오도록 카메라를 변환합니다. 화면을 확대/축소할 수 있어야 합니다. 이 메서드를 사용하여 경계 상자의 모든 면에 동일한 패딩을 포인트 단위로 할당합니다.
fitBounds:withEdgeInsets:
지정된 경계를 중앙에 오도록 카메라를 변환합니다. 화면을 확대/축소할 수 있어야 합니다. UIEdgeInsets의 경우 경계 상자의 각 측면에 독립적으로 패딩을 지정합니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.

GMSMapView를 사용하여 단일 속성 변경

GMSMapView 를 사용하지 않고도 카메라를 이동할 수 있는 몇 가지 방법을 제공합니다. GMSCameraPosition 객체 또는 GMSCameraUpdate 객체. 이러한 메서드를 사용하면 animateToLocation: 또는 animateToZoom:로 변경하면 변경사항을 애니메이션으로 표시할 수 있습니다. 단일 카메라 속성입니다.

예를 들어 toViewingAngle: 메서드를 사용하여 카메라 변경사항을 애니메이션 처리합니다. 기울이기.

Swift

mapView.animate(toViewingAngle: 45)
      

Objective-C

[mapView animateToViewingAngle:45];
      

타겟 설정 (위치)

위치는 지도의 중앙을 결정합니다. 위치는 위도와 경도이며, CLLocationCoordinate2DMake(으)로 생성된 CLLocationCoordinate2D

GMSCameraPosition를 사용하여 위치를 변경합니다. 이 예에서 지도는 새 위치로 복사됩니다.

Swift

let target = CLLocationCoordinate2D(latitude: -33.868, longitude: 151.208)
mapView.camera = GMSCameraPosition(target: target, zoom: 6)
      

Objective-C

CLLocationCoordinate2D target =
    CLLocationCoordinate2DMake(-33.868, 151.208);
mapView.camera = [GMSCameraPosition cameraWithTarget:target zoom:6];
      

변경사항에 애니메이션을 적용하고 지도를 새 위치로 이동하려면 camera 속성을 설정하는 대신 animateToCameraPosition: 메서드를 사용하세요. 또는 GMSMapView에서 animateToLocation: 메서드를 사용합니다.

Swift

mapView.animate(toLocation: CLLocationCoordinate2D(latitude: -33.868, longitude: 151.208))
      

Objective-C

[mapView animateToLocation:CLLocationCoordinate2DMake(-33.868, 151.208)];
      

GMSCameraUpdate 객체를 만들어 카메라를 이동할 수도 있습니다. 사용 스크롤할 지점 수를 지정하는 내장 메서드 scrollByX:Y: 카메라를 X 및 Y 방향으로 돌립니다. 이 예에서는 카메라 200 아래 100포인트를 선택합니다.

Swift

// Move the camera 200 points to the right, and 100 points downwards
let downwards = GMSCameraUpdate.scrollBy(x: 200, y: 100)
mapView.animate(with: downwards)
      

Objective-C

// Move the camera 200 points to the right, and 100 points downwards
GMSCameraUpdate *downwards = [GMSCameraUpdate scrollByX:200.0 Y:100.0];
[mapView animateWithCameraUpdate:downwards];
      

방위 (방향) 설정

방위는 나침반의 방향이며 진북에서부터 도 단위로 측정됩니다. 지도 상단 가장자리를 나타냅니다. 예를 들어 방위가 90도이면 지도가 위쪽 가장자리가 정동을 가리킵니다.

GMSCameraPosition 또는 GMSCameraUpdate를 사용하여 프로그래매틱 방식으로 방위를 설정합니다. 또는 GMSMapViewanimateToBearing: 메서드를 사용합니다.

Swift

mapView.animate(toBearing: 0)
      

Objective-C

[mapView animateToBearing:0];
      

기울기 설정 (시야각)

시야각은 카메라와 화면 사이의 원호 위에 있는 도 단위로 측정되며 nadir (방향 카메라 바로 아래를 가리킴). 시야각을 변경하면 지도는 카메라와 지도 위치 사이의 지형지물과 함께 원근법으로 표시됨 비례하여 더 크게 표시되고 지도 위치 너머의 지형지물이 3차원 효과를 낳습니다.

시야각은 0 (지도를 수직으로 내려다보는 지점) 사이입니다. 지정할 수 있습니다. 확대/축소 수준이 16 이상인 경우, 최대 65도입니다. 확대/축소 수준이 10 이하인 경우 최대 각도는 30입니다. 도 있습니다.

GMSCameraPosition를 사용하여 프로그래매틱 방식으로 시야각을 설정합니다. GMSCameraUpdate 또는 GMSMapViewanimateToViewingAngle: 메서드를 사용합니다.

Swift

mapView.animate(toViewingAngle: 45)
      

Objective-C

[mapView animateToViewingAngle:45];
      

확대/축소 설정

카메라의 확대/축소 수준이 지도의 축척을 결정합니다. 확대/축소 확대/축소 수준이 낮을수록 화면에서 더 자세한 내용을 볼 수 있습니다. 전 세계 더 많은 것을 볼 수 있습니다.

GMSCameraPosition 또는 GMSCameraUpdate를 사용하여 프로그래매틱 방식으로 확대/축소를 설정합니다. GMSMapViewanimateToZoom: 메서드 사용

Swift

mapView.animate(toZoom: 12)
      

Objective-C

[mapView animateToZoom:12];
      

다음 예에서는 zoomIn: 메서드를 사용하여 GMSCameraUpdate를 구성합니다. 객체를 사용하여 현재 수준에서 한 단계씩 확대를 애니메이션합니다.

Swift

// Zoom in one zoom level
let zoomCamera = GMSCameraUpdate.zoomIn()
mapView.animate(with: zoomCamera)
      

Objective-C

// Zoom in one zoom level
GMSCameraUpdate *zoomCamera = [GMSCameraUpdate zoomIn];
[mapView animateWithCameraUpdate:zoomCamera];
      

경계 설정

전체 관심 영역이 가장 크게 보이도록 카메라를 이동 카메라 뷰의 경계를 설정합니다. 예를 들어 사용자의 현재 위치에서 5마일 이내에 있는 모든 주유소를 표시하려는 경우 카메라를 움직여서 화면에 모두 표시할 수 있습니다.

  1. 원하는 GMSCoordinateBounds 계산 화면에 표시되어야 합니다.
  2. GMSMapViewcameraForBounds:insets: 메서드를 사용하여 새 결과를 반환합니다. GMSCameraPosition입니다.

이러한 경계를 설정하면 지정된 GMSCoordinateBounds이 를 반환합니다. 이 방법을 사용하면 기울기와 방위가 0으로 설정합니다.

다음 예는 카메라를 변경하여 도시가 같은 보기에 밴쿠버와 캘거리가 모두 표시됩니다.

Swift

let vancouver = CLLocationCoordinate2D(latitude: 49.26, longitude: -123.11)
let calgary = CLLocationCoordinate2D(latitude: 51.05,longitude: -114.05)
let bounds = GMSCoordinateBounds(coordinate: vancouver, coordinate: calgary)
let camera = mapView.camera(for: bounds, insets: UIEdgeInsets())!
mapView.camera = camera
      

Objective-C

CLLocationCoordinate2D vancouver = CLLocationCoordinate2DMake(49.26, -123.11);
CLLocationCoordinate2D calgary = CLLocationCoordinate2DMake(51.05, -114.05);
GMSCoordinateBounds *bounds =
    [[GMSCoordinateBounds alloc] initWithCoordinate:vancouver coordinate:calgary];
GMSCameraPosition *camera = [mapView cameraForBounds:bounds insets:UIEdgeInsetsZero];
mapView.camera = camera;
      

사용자의 화면 이동을 특정 영역으로 제한

다음 시나리오에서는 지도의 경계를 설정하지만 사용자가 스크롤하거나 패닝할 수 있습니다. 이 경계 밖에 있는 것을 볼 수 있습니다. 대신 좌표의 위치를 직접 제한하여 사용자가 지도 초점 (카메라 타겟)의 중심 경계에 이 경계 내에서만 스크롤하고 패닝할 수 있습니다.

예를 들어 쇼핑 센터나 공항의 리테일 앱은 사용자가 이 경계 내에서 스크롤하고 패닝할 수 있습니다.

화면 이동을 특정 경계로 제한하려면 다음의 cameraTargetBounds 속성을 설정합니다. 필수 경계를 정의하는 GMSCoordinateBounds 객체에 대한 GMSMapView 나중에 제한을 삭제하려면 cameraTargetBounds를 nil로 설정합니다.

Swift

mapView.cameraTargetBounds = bounds
      

Objective-C

mapView.cameraTargetBounds = bounds;
      

다음 다이어그램은 카메라 타겟을 표시 영역보다 약간 큰 영역으로 제한한 시나리오를 보여줍니다. 카메라 타겟이 제한된 영역 내에 유지되는 경우 사용자는 스크롤과 패닝을 할 수 있습니다. 십자가는 카메라 타겟을 나타냅니다.

다음보다 큰 카메라 경계를 보여주는 다이어그램
      표시 영역입니다.

지도에서는 표시 영역을 보여주는 곳이 지정된 경계 밖에 있더라도 항상 표시 영역을 채웁니다. 예를 들어 카메라 타겟을 경계 영역의 모서리에 배치하면 모서리를 벗어난 영역은 표시 영역 내에 보이지만 사용자는 그 영역 안쪽으로 스크롤할 수 없습니다. 다음 다이어그램은 이 시나리오를 보여줍니다. 십자가는 카메라 타겟을 나타냅니다.

오른쪽 하단 모서리에 위치한 카메라 타겟을 보여주는 다이어그램
      지정할 수 있습니다.

다음 다이어그램에서 카메라 타겟은 경계가 매우 제한되어 있어 사용자가 지도를 스크롤하거나 패닝할 기회가 거의 없습니다. 십자가는 카메라 타겟:

보다 작은 카메라 경계를 보여주는 다이어그램
      표시 영역입니다.

최소 또는 최대 확대/축소 설정

전역 상수 kGMSMinZoomLevelkGMSMaxZoomLevel는 최소 또는 최대 확대/축소 값입니다. 기본적으로 minZoommaxZoom GMSMapView의 속성이 다음 상수로 설정됩니다.

지도에서 사용할 수 있는 확대/축소 수준의 범위를 제한하려면 최소 및 최대 확대/축소 수준입니다. 다음 코드는 확대/축소 수준을 10~15로 제한합니다.

Swift

let camera = GMSCameraPosition(
  latitude: 41.887,
  longitude: -87.622,
  zoom: 12
)
let mapView = GMSMapView(frame: .zero, camera: camera)
mapView.setMinZoom(10, maxZoom: 15)
      

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:41.887
                                                       longitude:-87.622
                                                             zoom:12];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero
                                        camera:camera];
[mapView setMinZoom:10 maxZoom:15];
      

setMinZoom:maxZoom: 메서드를 사용하여 확대/축소 범위를 설정해야 합니다. 하지만 사용자는 minZoommaxZoom 속성을 사용하여 현재 값을 읽을 수 있습니다. 이 이 접근 방식은 값 중 하나만 제한하는 경우에 유용합니다. 다음 코드는 최소 확대/축소 수준만 변경합니다.

Swift

mapView.setMinZoom(12, maxZoom: mapView.maxZoom)
      

Objective-C

[mapView setMinZoom:12 maxZoom:mapView.maxZoom];
      

최소 및 최대 확대/축소를 업데이트한 후 카메라의 확대/축소 수준이 값이 새 범위를 벗어나는 경우, 현재 확대/축소는 자동으로 다음과 같이 업데이트됩니다. 가장 가까운 유효한 값을 표시합니다. 예를 들어 다음 코드에서 4로 정의됩니다. 나중에 확대/축소 범위가 10-15로 설정되면 현재 확대/축소 수준이 10으로 업데이트됩니다.

Swift

// Sets the zoom level to 4.
let camera2 = GMSCameraPosition(
  latitude: 41.887,
  longitude: -87.622,
  zoom: 4
)
let mapView2 = GMSMapView(frame: .zero, camera: camera)

// The current zoom, 4, is outside of the range. The zoom will change to 10.
mapView.setMinZoom(10, maxZoom: 15)
      

Objective-C

// Sets the zoom level to 4.
GMSCameraPosition *camera2 = [GMSCameraPosition cameraWithLatitude:41.887
                                                         longitude:-87.622
                                                              zoom:4];
GMSMapView *mapView2 = [GMSMapView mapWithFrame:CGRectZero
                                         camera:camera];
// The current zoom, 4, is outside of the range. The zoom will change to 10.
[mapView setMinZoom:10 maxZoom:15];