يتم تمثيل الخرائط في واجهة برمجة التطبيقات من خلال الفئة GMSMapView، وهي فئة فرعية من UIView. الخريطة هي العنصر الأهم في حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات iOS، وهي توفّر الطرق اللازمة لإضافة عناصر أخرى وإزالتها وإدارتها، مثل العلامات والخطوط المتعددة.
مقدمة
تتيح لك حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل iOS عرض خريطة Google في تطبيقك على iOS. تتضمّن هذه الخرائط المظهر نفسه الذي تراه في تطبيق خرائط Google المتوافق مع iOS، وتتيح حزمة تطوير البرامج (SDK) العديد من الميزات نفسها.
بالإضافة إلى وظيفة الربط، تتيح واجهة برمجة التطبيقات أيضًا مجموعة من التفاعلات التي تتوافق مع نموذج واجهة مستخدم iOS. على سبيل المثال، يمكنك إعداد تفاعلات مع خريطة من خلال تحديد معالجات تستجيب لإيماءات المستخدم، مثل النقر والنقر المزدوج.
فئة المفتاح عند العمل مع عنصر "خريطة" هي الفئة GMSMapView.
تتعامل GMSMapView مع العمليات التالية تلقائيًا:
جارٍ الاتصال بخدمة "خرائط Google".
جارٍ تنزيل مربّعات الخرائط.
عرض المربّعات على شاشة الجهاز
عرض عناصر تحكّم متنوعة، مثل تحريك المحتوى وتكبيره/تصغيره
الاستجابة لإيماءات التحريك والتكبير/التصغير من خلال تحريك الخريطة وتكبيرها أو تصغيرها
الاستجابة لإيماءات الإصبعين من خلال إمالة زاوية عرض الخريطة
بالإضافة إلى هذه العمليات التلقائية، يمكنك التحكّم في سلوك الخريطة ومظهرها من خلال الخصائص والطرق التي تعرضها الفئة GMSMapView. استخدِم GMSMapView لإضافة علامات وإزالتها، وتراكبات أرضية وخطوط متعددة الأضلاع، وتغيير نوع الخريطة المعروضة، والتحكّم في المحتوى المعروض على الخريطة من خلال الفئة GMSCameraPosition.
إنشاء خرائط باستخدام SwiftUI
توفّر SwiftUI طريقة إضافية لإنشاء واجهة مستخدم باستخدام أسلوب تصريحي. ما عليك سوى إخبار SwiftUI بالشكل الذي تريد أن يظهر به العرض مع جميع الحالات المختلفة، وسيتولّى النظام الباقي. تتولّى SwiftUI تعديل طريقة العرض كلما تغيّرت الحالة الأساسية بسبب حدث أو إجراء اتّخذه المستخدم.
تم إنشاء حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات iOS استنادًا إلى UIKit، وهي لا توفّر طريقة عرض متوافقة مع SwiftUI. تتطلّب إضافة خرائط في SwiftUI الالتزام بأحد البروتوكولَين
UIViewRepresentable أو UIViewControllerRepresentable. لمزيد من المعلومات، يمكنك الاطّلاع على
Codelab إضافة خريطة إلى تطبيق iOS باستخدام
SwiftUI.
إضافة خريطة
في ما يلي الخطوات الأساسية لإضافة خريطة:
للحصول على حزمة SDK والحصول على مفتاح واجهة برمجة التطبيقات وإضافة الأُطر المطلوبة، اتّبِع الخطوات الواردة في:
في AppDelegate، قدِّم مفتاح واجهة برمجة التطبيقات إلى طريقة الفئة provideAPIKey:
على GMSServices.
إنشاء ViewController أو تعديله إذا تم عرض الخريطة عندما يصبح عنصر التحكّم في العرض هذا مرئيًا، احرص على إنشائه ضمن طريقة viewDidLoad.
عند تهيئة عرض الخريطة، اضبط خيارات الإعداد باستخدام
GMSMapViewOptions. تشمل الخصائص frame أو camera أو mapID أو backgroundColor أو screen.
اضبط السمة خيارات الخريطةcamera باستخدام عنصر GMSCameraPosition. يحدّد هذا الحقل مركز الخريطة ومستوى التكبير/التصغير.
أنشئ فئة GMSMapView ونسخة منها باستخدام الطريقة GMSMapViewoptions:. إذا كان سيتم استخدام هذه الخريطة كطريقة العرض الوحيدة لوحدة التحكّم في العرض، يمكن استخدام القيمة التلقائية CGRectZero لخيار الخريطة frame كطريقة العرض frame، إذ يتم تغيير حجم الخريطة تلقائيًا.
اضبط العنصر GMSMapView كطريقة عرض لوحدة التحكّم في العرض. على سبيل المثال،
self.view = mapView;.
يضيف المثال أدناه خريطة في منتصف مدينة سنغافورة إلى أحد التطبيقات.
تاريخ التعديل الأخير: 2025-08-31 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-08-31 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eThe Maps SDK for iOS allows you to integrate Google Maps into your iOS application, offering features and interactions similar to the Google Maps app.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eGMSMapView\u003c/code\u003e is the primary class for working with maps, handling tasks like connecting to Google Maps, downloading tiles, and responding to user gestures.\u003c/p\u003e\n"],["\u003cp\u003eTo add a map, obtain an API key, configure the \u003ccode\u003eGMSMapView\u003c/code\u003e object with desired settings like camera position and frame, and then set it as the view controller's view.\u003c/p\u003e\n"],["\u003cp\u003eSwiftUI integration requires using \u003ccode\u003eUIViewRepresentable\u003c/code\u003e or \u003ccode\u003eUIViewControllerRepresentable\u003c/code\u003e due to the SDK being built on \u003ccode\u003eUIKit\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eAfter adding the map, you can further configure its settings to customize its appearance and behavior.\u003c/p\u003e\n"]]],[],null,["\u003cbr /\u003e\n\nSelect platform: [Android](/maps/documentation/android-sdk/map \"View this page for the Android platform docs.\") [iOS](/maps/documentation/ios-sdk/map \"View this page for the iOS platform docs.\") [JavaScript](/maps/documentation/javascript/maptypes \"View this page for the JavaScript platform docs.\")\n\n\u003cbr /\u003e\n\n| **Note:** This document describes how to add a Google Map to an iOS application. If you would like to know how to launch the Google Maps standalone application, refer to the [URL Scheme](/maps/documentation/ios-sdk/urlscheme) documentation.\n\nMaps are represented in the API by the [`GMSMapView`](/maps/documentation/ios-sdk/reference/objc/Classes/GMSMapView) class, a\nsubclass of `UIView`. The map is the most significant object in the\nMaps SDK for iOS, and provides necessary methods for adding, removing\nand managing other objects such as markers and polylines.\n\nIntroduction\n\nThe Maps SDK for iOS lets you to display a Google map in\nyour iOS application. These maps have the same appearance as the maps you see in\nthe [Google Maps](https://itunes.apple.com/app/id585027354)\niOS app, and the SDK exposes many of the same features.\n\nIn addition to mapping functionality, the API also supports a range of\ninteractions that are consistent with the iOS UI model. For example, you can set\nup interactions with a map by defining responders that react to user gestures,\nsuch as tap and double-tap.\n\nThe key class when working with a Map object is the `GMSMapView` class.\n`GMSMapView` handles the following operations automatically:\n\n- Connecting to the Google Maps service.\n- Downloading map tiles.\n- Displaying tiles on the device screen.\n- Displaying various controls such as pan and zoom.\n- Responding to pan and zoom gestures by moving the map and zooming in or out.\n - Responding to two finger gestures by tilting the viewing angle of the map.\n\nIn addition to these automatic operations, you can control the behavior and\nappearance of the map through the properties and methods exposed by the\n`GMSMapView` class. Use `GMSMapView` to add and remove markers, ground\noverlays and polylines, change the type of map that is displayed, and control\nwhat is shown on the map through the [`GMSCameraPosition`](/maps/documentation/ios-sdk/reference/objc/Classes/GMSCameraPosition)\nclass.\n\nBuild Maps with SwiftUI\n\nSwiftUI offers an additional way to create UI using a declarative approach. You\ntell SwiftUI how you want your view to look along with all the different states\nfor it, and the system does the rest. SwiftUI handles updating the view whenever\nthe underlying state changes due to an event or user action.\n\nMaps SDK for iOS is built on top of `UIKit` and doesn't provide a\nSwiftUI-compatible view. Adding maps in SwiftUI requires conforming to either\n`UIViewRepresentable` or `UIViewControllerRepresentable`. To learn more, see the\nCodelab [adding a map to your iOS app with\nSwiftUI](/codelabs/maps-platform/maps-platform-ios-swiftui#0).\n\nAdd a map\n\nThe basic steps for adding a map are:\n\n1. To get the SDK, obtain an API key, and add the required frameworks, follow\n the steps in:\n\n 1. [Set Up in the Google Cloud console](/maps/documentation/ios-sdk/cloud-setup)\n\n 2. [Use an API key](/maps/documentation/ios-sdk/get-api-key)\n\n 3. [Set up an Xcode Project](/maps/documentation/ios-sdk/config)\n\n 4. In your `AppDelegate`, provide your API key to the `provideAPIKey:`\n class method on `GMSServices`.\n\n 5. Create or update a `ViewController`. If the map is displayed when this\n view controller becomes visible, be sure to create it within the\n `viewDidLoad` method.\n\n 6. When initializing your map view, set configuration options with\n `GMSMapViewOptions`. Properties include the `frame`, `camera`,\n `mapID`,`backgroundColor` or `screen`.\n\n 7. Set your [map options](/maps/documentation/ios-sdk/configure-map#map_options) `camera` property with a\n `GMSCameraPosition` object. This specifies the center and zoom level of\n the map.\n\n 8. Create and instantiate a `GMSMapView` class using the `GMSMapView`\n `options:` method. If this map is to be used as the view controller's\n only view, the map option `frame` default value of `CGRectZero` can be\n used as the view `frame` --- the map is resized automatically.\n\n 9. Set the `GMSMapView` object as the view controller's view. For example,\n `self.view = mapView;`.\n\nThe below example adds a map, centered at downtown Singapore, to an app. \n\nSwift \n\n```swift\nimport GoogleMaps\n\nclass MapObjects : UIViewController {\n override func viewDidLoad() {\n super.viewDidLoad()\n\n let options = GMSMapViewOptions()\n options.camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12)\n options.frame = self.view.bounds;\n\n let mapView = GMSMapView(options:options)\n self.view = mapView\n }\n}\n```\n\nObjective-C \n\n```objective-c\n- (void)viewDidLoad {\n [super viewDidLoad];\n\n GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];\n options.camera = [GMSCameraPosition cameraWithLatitude:1.285\n longitude:103.848\n zoom:12];\n options.frame = self.view.bounds;\n\n GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];\n self.view = mapView;\n}\n```\n\nOnce you've followed these steps, you may further configure the `GMSMapView`\nobject.\n\nWhat's next\n\nAfter you complete these steps, you can [configure the map\nsettings](/maps/documentation/ios-sdk/configure-map)."]]