إضافة خريطة تتضمّن علامة
يوضّح هذا الدليل التعليمي كيفية إضافة خريطة Google بسيطة تتضمّن علامة إلى تطبيق iOS. وهو مناسب للمستخدمين الذين لديهم معرفة مبتدئة أو متوسطة بلغة Swift أو Objective-C بالإضافة إلى معرفة عامة بـ Xcode. للحصول على دليل متقدّم ل إنشاء الخرائط، يُرجى قراءة دليل المطوّرين.
ستُنشئ الخريطة التالية باستخدام هذا الدليل التعليمي. تم وضع العلامة في سيدني، أستراليا.
الحصول على الشفرة
استنسِخ أو نزِّل مستودع نماذج "خرائط Google" لنظام التشغيل iOS على GitHub.
يمكنك بدلاً من ذلك النقر على الزر التالي لتنزيل رمز المصدر:
Swift
import UIKit import GoogleMaps class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. // Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0) let mapView = GMSMapView.map(withFrame: self.view.frame, camera: camera) self.view.addSubview(mapView) // Creates a marker in the center of the map. let marker = GMSMarker() marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20) marker.title = "Sydney" marker.snippet = "Australia" marker.map = mapView } }
Objective-C
#import "ViewController.h" #import <GoogleMaps/GoogleMaps.h> @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86 longitude:151.20 zoom:6]; GMSMapView *mapView = [GMSMapView mapWithFrame:self.view.frame camera:camera]; mapView.myLocationEnabled = YES; [self.view addSubview:mapView]; // Creates a marker in the center of the map. GMSMarker *marker = [[GMSMarker alloc] init]; marker.position = CLLocationCoordinate2DMake(-33.86, 151.20); marker.title = @"Sydney"; marker.snippet = @"Australia"; marker.map = mapView; } @end
البدء
أداة إدارة حِزم Swift
يمكن تثبيت حزمة تطوير البرامج (SDK) لتطبيق "خرائط Google" لأجهزة iOS باستخدام أداة Swift Package Manager.
- تأكَّد من إزالة أي تبعيات حالية لحزمة تطوير البرامج (SDK) لتطبيق "خرائط Google" لنظام التشغيل iOS.
- افتح نافذة Terminal (وحدة طرفية) وانتقِل إلى الدليل
tutorials/map-with-marker
. -
تأكَّد من إغلاق مساحة عمل Xcode وشغِّل الأوامر التالية:
sudo gem install cocoapods-deintegrate cocoapods-clean pod deintegrate pod cache clean --all rm Podfile rm map-with-marker.xcworkspace
- افتح مشروع Xcode واحذِف ملف podfile.
- انتقِل إلى ملف > إضافة تبعيات الحِزم.
- أدخِل https://github.com/googlemaps/ios-maps-sdk كعنوان URL، واضغط على مفتاح Enter لسحب الحزمة، ثم انقر على إضافة حزمة.
- قد تحتاج إلى إعادة ضبط ذاكرة التخزين المؤقت للحِزم باستخدام ملف > الحِزم > إعادة ضبط ذاكرة التخزين المؤقت للحِزم.
استخدام CocoaPods
- نزِّل Xcode الإصدار 15.0 أو إصدار أحدث مثبَّتًا عليه.
- إذا لم يكن لديك CocoaPods،
ثبِّته على نظام التشغيل macOS من خلال تنفيذ الأمر التالي من المحطة الطرفية:
sudo gem install cocoapods
- انتقِل إلى دليل
tutorials/map-with-marker
. - نفِّذ الأمر
pod install
. سيؤدي ذلك إلى تثبيت حزمة تطوير البرامج (SDK) لتطبيق "خرائط Google" المحدّدة فيPodfile
، بالإضافة إلى أي ملحقات. - شغِّل
pod outdated
لمقارنة إصدار الحِزمة المثبَّتة بأي تحديثات جديدة. إذا تم رصد إصدار جديد، عليك تشغيلpod update
لتحديثPodfile
وتثبيت أحدث إصدار من حزمة SDK. لمزيد من التفاصيل، يُرجى الاطّلاع على دليل CocoaPods. - افتح (انقر نقرًا مزدوجًا) ملف المشروع map-with-marker.xcworkspace
لفتحه في Xcode. يجب استخدام ملف
.xcworkspace
لفتح المشروع.
الحصول على مفتاح واجهة برمجة التطبيقات وتفعيل واجهات برمجة التطبيقات اللازمة
لإكمال هذا الدليل التعليمي، تحتاج إلى مفتاح Google API مفوَّض باستخدام حزمة تطوير البرامج (SDK) لخرائط Google لنظام التشغيل iOS. انقر على الزر التالي للحصول على مفتاح وتفعيل واجهة برمجة التطبيقات.
البدءلمزيد من التفاصيل، يُرجى الاطّلاع على الحصول على مفتاح واجهة برمجة التطبيقات.
إضافة مفتاح واجهة برمجة التطبيقات إلى تطبيقك
أضِف مفتاح واجهة برمجة التطبيقات إلى AppDelegate.swift
على النحو التالي:
- يُرجى العلم أنّه تمت إضافة بيان الاستيراد التالي إلى الملف:
import GoogleMaps
- عدِّل السطر التالي في طريقة
application(_:didFinishLaunchingWithOptions:)
، واستبدِل YOUR_API_KEY بمفتاح واجهة برمجة التطبيقات:GMSServices.provideAPIKey("YOUR_API_KEY")
إنشاء تطبيقك وتشغيله
- وصِّل جهاز iOS بالكمبيوتر، أو اختَر محاكيًا من قائمة مخطّط Xcode.
- إذا كنت تستخدم جهازًا، تأكَّد من تفعيل خدمات الموقع الجغرافي. إذا كنت تستخدم محاكيًا، اختَر موقعًا جغرافيًا من قائمة الميزات.
- في Xcode، انقر على خيار القائمة التطبيق/التشغيل (أو رمز زر التشغيل ).
- ينشئ Xcode التطبيق، ثم يشغّله على الجهاز أو على المحاكي.
- من المفترض أن تظهر لك خريطة تتضمّن علامة في منتصف سيدني على الساحل الشرقي لأستراليا، على غرار الصورة في هذه الصفحة.
تحرّي الخلل وإصلاحه:
- إذا لم تظهر لك خريطة، تأكَّد من أنّك حصلت على مفتاح واجهة برمجة التطبيقات وأضفته إلى التطبيق، على النحو الموضّح سابقًا. تحقّق من وحدة تحكّم تصحيح الأخطاء في Xcode بحثًا عن رسائل خطأ حول مفتاح واجهة برمجة التطبيقات.
- إذا فرضت قيودًا على مفتاح واجهة برمجة التطبيقات حسب معرّف حزمة iOS، عدِّل
المفتاح لإضافة معرّف الحزمة للتطبيق:
com.google.examples.map-with-marker
. - تأكَّد من توفّر اتصال جيد بشبكة Wi-Fi أو نظام تحديد المواقع العالمي (GPS).
- استخدِم أدوات تصحيح الأخطاء في Xcode لعرض السجلات وتصحيح أخطاء التطبيق.
فهم الرمز
- أنشئ خريطة واضبطها على أنّها طريقة العرض في
viewDidLoad()
.Swift
// Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0) let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera) view = mapView
Objective-C
// Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86 longitude:151.20 zoom:6.0]; GMSMapView *mapView = [[GMSMapView alloc] initWithFrame: CGRectZero camera:camera]; self.view = mapView;
- أضِف علامة إلى الخريطة في
viewDidLoad()
.Swift
// Creates a marker in the center of the map. let marker = GMSMarker() marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20) marker.title = "Sydney" marker.snippet = "Australia" marker.map = mapView
Objective-C
// Creates a marker in the center of the map. GMSMarker *marker = [[GMSMarker alloc] init]; marker.position = CLLocationCoordinate2DMake(-33.86, 151.20); marker.title = @"Sydney"; marker.snippet = @"Australia"; marker.map = mapView;
تعرض حزمة تطوير البرامج (SDK) لتطبيق "خرائط Google" لنظام التشغيل iOS تلقائيًا محتوى نافذة المعلومات عند نقر المستخدم على علامة. ليس عليك إضافة مستمع للنقرات لعلامة التعليق التوضيحي إذا كنت تريد استخدام السلوك التلقائي.
تهانينا! لقد أنشأت تطبيقًا لأجهزة iOS يعرض خريطة Google مع علامة للإشارة إلى موقع جغرافي معيّن. وتعرّفت أيضًا على كيفية استخدام حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات iOS.
الخطوات التالية
اطّلِع على مزيد من المعلومات عن كائن الخريطة والإجراءات التي يمكنك اتّخاذها باستخدام العلامات.