إضافة خريطة بعلامة
يوضّح هذا الدليل التعليمي كيفية إضافة خريطة 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 options = GMSMapViewOptions() options.camera = camera options.frame = self.view.frame let mapView = GMSMapView(options: options) 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]; GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = camera; options.frame = self.view.frame; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; 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 Package Manager
يمكن تثبيت حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع iOS باستخدام Swift Package Manager.
- أزِل أي تبعيات حالية لحزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع iOS.
- افتح نافذة المحطة الطرفية وانتقِل إلى دليل
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.
- انتقِل إلى ملف > إضافة موارد الاعتمادية للحزمة (File > Add Package Dependencies).
- أدخِل https://github.com/googlemaps/ios-maps-sdk كعنوان URL، واضغط على Enter لسحب الحزمة، ثم انقر على Add Package.
- قد تحتاج إلى إعادة ضبط ذاكرة التخزين المؤقت للحزمة من خلال ملف > الحزم > إعادة ضبط ذاكرة التخزين المؤقت للحزمة.
الحصول على مفتاح واجهة برمجة تطبيقات وتفعيل واجهات برمجة التطبيقات اللازمة
لإكمال هذا البرنامج التعليمي، تحتاج إلى مفتاح Google API مصرَّح له باستخدام حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع iOS. انقر على الزر التالي للحصول على مفتاح وتفعيل واجهة برمجة التطبيقات.
البدءلمزيد من التفاصيل، يُرجى الاطّلاع على مقالة الحصول على مفتاح واجهة برمجة التطبيقات.
إضافة مفتاح واجهة برمجة التطبيقات إلى تطبيقك
أضِف مفتاح واجهة برمجة التطبيقات إلى AppDelegate.swift على النحو التالي:
- يُرجى العِلم أنّه تمت إضافة عبارة الاستيراد التالية إلى الملف:
import GoogleMaps
- عدِّل السطر التالي في طريقة
application(_:didFinishLaunchingWithOptions:)، واستبدِل YOUR_API_KEY بمفتاح واجهة برمجة التطبيقات:GMSServices.provideAPIKey("YOUR_API_KEY")
إنشاء تطبيقك وتشغيله
- وصِّل جهاز iOS بالكمبيوتر أو اختَر محاكيًا من قائمة مخططات Xcode.
- إذا كنت تستخدم جهازًا، تأكَّد من تفعيل الخدمات المستندة إلى الموقع الجغرافي. إذا كنت تستخدم محاكيًا، اختَر موقعًا جغرافيًا من قائمة الميزات.
- في Xcode، انقر على خيار القائمة Product/Run (أو رمز زر التشغيل).
- يقوم 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 options = GMSMapViewOptions() options.camera = camera let mapView = GMSMapView(options: options) 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]; GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = camera; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; 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;
تعرض حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع iOS تلقائيًا محتوى نافذة المعلومات عندما ينقر المستخدم على علامة. ليس عليك إضافة متتبِّع نقرات للعلامة إذا كنت تريد استخدام الإعداد التلقائي.
تهانينا! لقد أنشأت تطبيق iOS يعرض خريطة Google مع علامة للإشارة إلى موقع جغرافي معيّن. لقد تعرّفت أيضًا على كيفية استخدام حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع iOS.
الخطوات التالية
مزيد من المعلومات حول عنصر الخريطة والإجراءات التي يمكنك اتّخاذها باستخدام العلامات