지면 오버레이는 위도/경도 좌표에 연결되어 지도를 드래그하거나 확대/축소할 때 이동하는 지도상의 오버레이입니다.
소개
지면 오버레이는 지도에 고정된 이미지입니다. 마커와 달리 지면 오버레이는 화면이 아닌 지표면을 기준으로 방향이 정해지므로 지도를 회전하거나 기울이거나 확대/축소하면 이미지의 방향이 바뀝니다.
지상 오버레이를 추가하려면 아이콘과 경계를 모두 정의하는 GMSGroundOverlay 객체를 만드세요. 둘 중 하나를 지정하지 않으면 지면 오버레이가 지도에 표시되지 않습니다. 선택사항으로 지도에서 이미지의 배치에 영향을 미치는 추가 설정을 지정할 수도 있습니다.
필요한 옵션을 정의한 후 이 객체의 map 속성을 설정하여 오버레이를 추가합니다.
letsouthWest=CLLocationCoordinate2D(latitude:40.712216,longitude:-74.22655)letnorthEast=CLLocationCoordinate2D(latitude:40.773941,longitude:-74.12544)letoverlayBounds=GMSCoordinateBounds(coordinate:southWest,coordinate:northEast)// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpgleticon=UIImage(named:"newark_nj_1922")letoverlay=GMSGroundOverlay(bounds:overlayBounds,icon:icon)overlay.bearing=0overlay.map=mapView
Objective-C
CLLocationCoordinate2DsouthWest=CLLocationCoordinate2DMake(40.712216,-74.22655);CLLocationCoordinate2DnorthEast=CLLocationCoordinate2DMake(40.773941,-74.12544);GMSCoordinateBounds*overlayBounds=[[GMSCoordinateBoundsalloc]initWithCoordinate:southWestcoordinate:northEast];// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpgUIImage*icon=[UIImageimageNamed:@"newark_nj_1922"];GMSGroundOverlay*overlay=[GMSGroundOverlaygroundOverlayWithBounds:overlayBoundsicon:icon];overlay.bearing=0;overlay.map=mapView;
오버레이 삭제
GMSGroundOverlay의 map 속성을 nil로 설정하여 지도에서 지면 오버레이를 삭제할 수 있습니다. 또는 GMSMapViewclear 메서드를 호출하여 현재 지도에 있는 지면 오버레이를 포함한 모든 오버레이를 삭제할 수 있습니다.
Swift
mapView.clear()
Objective-C
[mapViewclear];
지면 오버레이를 지도에 추가한 후 수정하려면 GMSGroundOverlay 객체를 보유하고 있어야 합니다. 나중에 이 객체를 변경하여 지면 오버레이를 수정할 수 있습니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-08-31(UTC)"],[[["\u003cp\u003eGround overlays are images fixed to a map, oriented to the Earth's surface, and change orientation with map interactions.\u003c/p\u003e\n"],["\u003cp\u003eTo add a ground overlay, create a \u003ccode\u003eGMSGroundOverlay\u003c/code\u003e object, define its icon, bounds, and optional settings, then set its \u003ccode\u003emap\u003c/code\u003e property.\u003c/p\u003e\n"],["\u003cp\u003eGround overlays can be removed by setting the \u003ccode\u003emap\u003c/code\u003e property to \u003ccode\u003enil\u003c/code\u003e or using the \u003ccode\u003eclear\u003c/code\u003e method on the \u003ccode\u003eGMSMapView\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eModifications to existing ground overlays can be made by accessing and updating the \u003ccode\u003eGMSGroundOverlay\u003c/code\u003e object directly.\u003c/p\u003e\n"],["\u003cp\u003eImplement the \u003ccode\u003eGMSMapViewDelegate\u003c/code\u003e protocol to listen to events like user taps on the overlay.\u003c/p\u003e\n"]]],["Ground overlays, images fixed to a map using latitude/longitude, are added by creating a `GMSGroundOverlay` object. This requires setting both the `icon` (an image) and `bounds` (southwest/northeast coordinates). Optionally, set properties like `bearing` and `zoomLevel`. To display, assign the object's `map` property. Overlays are removed by setting `map` to `nil` or using the `clear` method. Modifications require retaining the `GMSGroundOverlay` object and to listen for events, you must implement `GMSMapViewDelegate`.\n"],null,["Select platform: [Android](/maps/documentation/android-sdk/groundoverlay \"View this page for the Android platform docs.\") [iOS](/maps/documentation/ios-sdk/overlays \"View this page for the iOS platform docs.\") [JavaScript](/maps/documentation/javascript/groundoverlays \"View this page for the JavaScript platform docs.\")\n\n\u003cbr /\u003e\n\nGround overlays are overlays on the map that are tied to latitude/longitude\ncoordinates, so they move when you drag or zoom the map.\n\nIntroduction\n\nA ground overlay is an image that is fixed to a map. Unlike\n[markers](/maps/documentation/ios-sdk/marker), ground overlays are oriented against the Earth's surface\nrather than the screen, so rotating, tilting or zooming the map will change\nthe orientation of the image.\n\nTo add a ground overlay, create a\n[`GMSGroundOverlay`](/maps/documentation/ios-sdk/reference/objc/Classes/GMSGroundOverlay)\nobject that defines both an icon and a bounds. Failing to specify either will\ncause the ground overlay to not appear on the map. You can optionally specify\nadditional settings that will affect the positioning of the image on the map.\nOnce you've defined the necessary options, set this object's `map` property to\nadd the overlay.\n\nAdding an overlay\n\n1. Instantiate a new `GMSGroundOverlay` object\n2. Set the `icon` property to an instance of `UIImage`.\n3. Set the `bounds` property to an instance of `GMSCoordinateBounds`. The bounds represent the south west, and north east corners of the image.\n4. Set optional properties, such as `bearing` and `zoomLevel`, as desired.\n5. Set the `map` property - the image appears on the map.\n\nThe below example demonstrates how to add a ground overlay to an existing\n`GMSMapView` object.\n\n\nSwift \n\n```swift\nlet southWest = CLLocationCoordinate2D(latitude: 40.712216, longitude: -74.22655)\nlet northEast = CLLocationCoordinate2D(latitude: 40.773941, longitude: -74.12544)\nlet overlayBounds = GMSCoordinateBounds(coordinate: southWest, coordinate: northEast)\n\n// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg\nlet icon = UIImage(named: \"newark_nj_1922\")\n\nlet overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)\noverlay.bearing = 0\noverlay.map = mapView\n \n```\n\nObjective-C \n\n```objective-c\nCLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(40.712216,-74.22655);\nCLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(40.773941,-74.12544);\nGMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest\n coordinate:northEast];\n\n// Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg\nUIImage *icon = [UIImage imageNamed:@\"newark_nj_1922\"];\nGMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];\noverlay.bearing = 0;\noverlay.map = mapView;\n \n```\n\n\u003cbr /\u003e\n\nRemoving an overlay\n\nYou can remove a ground overlay from the map by setting your\n`GMSGroundOverlay`'s `map` property to `nil`. Alternately, you can remove all\nof the overlays (including ground overlays currently on the map by calling the\n`GMSMapView` `clear` method.\n\n\nSwift \n\n```swift\nmapView.clear()\n \n```\n\nObjective-C \n\n```objective-c\n[mapView clear];\n \n```\n\n\u003cbr /\u003e\n\nIf you wish to make modifications to a ground overlay after you've added it to\nthe map, ensure that you keep hold of the `GMSGroundOverlay` object. You can\nmodify the ground overlay later by making changes to this object.\n\n\nSwift \n\n```swift\nlet overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)\noverlay.bearing = 0\noverlay.map = mapView\n\n// ...\n\noverlay.isTappable = true\n \n```\n\nObjective-C \n\n```objective-c\nGMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon];\noverlay.bearing = 0;\noverlay.map = mapView;\n\n// ...\noverlay.tappable = YES;\n \n```\n\n\u003cbr /\u003e\n\nEvents\n\nYou can listen to events that occur on the map, such as when a user taps an\noverlay. To listen to events, you must implement the\n[`GMSMapViewDelegate`](/maps/documentation/ios-sdk/reference/objc/Protocols/GMSMapViewDelegate) protocol. See the\n[guide to events](/maps/documentation/ios-sdk/events) and the list of methods on the\n[`GMSMapViewDelegate`](/maps/documentation/ios-sdk/reference/objc/Protocols/GMSMapViewDelegate)."]]