همپوشانیهای زمینی، پوششهایی روی نقشه هستند که به مختصات طول و عرض جغرافیایی گره خوردهاند، بنابراین وقتی نقشه را میکشید یا بزرگنمایی میکنید، حرکت میکنند.
مقدمه
پوشش زمین تصویری است که روی نقشه ثابت می شود. بر خلاف نشانگرها ، روکشهای زمین به جای صفحه نمایش، روی سطح زمین قرار دارند، بنابراین چرخش، کج کردن یا بزرگنمایی نقشه، جهت تصویر را تغییر میدهد.
برای افزودن همپوشانی زمین، یک شی GMSGroundOverlay ایجاد کنید که هم نماد و هم مرز را تعریف می کند. عدم تعیین هر کدام باعث می شود که پوشش زمین روی نقشه ظاهر نشود. شما می توانید به صورت اختیاری تنظیمات اضافی را تعیین کنید که بر موقعیت تصویر روی نقشه تأثیر می گذارد. هنگامی که گزینه های لازم را تعریف کردید، ویژگی map این شی را برای اضافه کردن همپوشانی تنظیم کنید.
اضافه کردن یک پوشش
یک شی جدید GMSGroundOverlay را نمونه سازی کنید
ویژگی icon را روی یک نمونه از UIImage تنظیم کنید.
ویژگی bounds را روی یک نمونه از GMSCoordinateBounds تنظیم کنید. حاشیه ها نمایانگر گوشه های جنوب غربی و شمال شرقی تصویر هستند.
ویژگی های اختیاری، مانند bearing و zoomLevel به صورت دلخواه تنظیم کنید.
ویژگی map را تنظیم کنید - تصویر روی نقشه ظاهر می شود.
مثال زیر نحوه اضافه کردن یک همپوشانی زمین به یک شی GMSMapView موجود را نشان می دهد.
سویفت
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
هدف-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;
حذف یک پوشش
می توانید با تنظیم ویژگی mapGMSGroundOverlay خود بر روی nil یک پوشش زمین را از نقشه حذف کنید. متناوباً، میتوانید با فراخوانی روش clearGMSMapView همه پوششها (از جمله پوششهای زمینی که در حال حاضر روی نقشه وجود دارد) را حذف کنید.
سویفت
mapView.clear()
هدف-C
[mapViewclear];
اگر میخواهید پس از افزودن آن به نقشه، روی همپوشانی زمین تغییراتی ایجاد کنید، مطمئن شوید که شی GMSGroundOverlay را نگه دارید. بعداً میتوانید با ایجاد تغییرات در این شی، پوشش زمین را تغییر دهید.
میتوانید به رویدادهایی که روی نقشه رخ میدهند گوش دهید، مانند زمانی که کاربر روی یک پوشش ضربه میزند. برای گوش دادن به رویدادها، باید پروتکل GMSMapViewDelegate پیاده سازی کنید. راهنمای رویدادها و فهرست روشها را در GMSMapViewDelegate ببینید.
تاریخ آخرین بهروزرسانی 2025-08-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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-29 بهوقت ساعت هماهنگ جهانی."],[[["\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)."]]