إعداد خريطة

اختَر النظام الأساسي: Android iOS

تصف هذه النظرة العامة كيفية تهيئة خريطة تمت إضافتها إلى تطبيق iOS باستخدام حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات iOS.

نظرة عامة

بعد إضافة خريطة إلى تطبيقك، يمكنك ضبط الخيارات الأولية وإعدادات وقت التشغيل للخريطة. لمعرفة التفاصيل حول إضافة حاوية خريطة، يمكنك الاطّلاع على صفحة إضافة خريطة.

تشمل الإعدادات الأولية للخريطة ما يلي:

في وقت التشغيل، يمكنك ضبط هذه الإعدادات وبعض إعدادات الإضافات من خلال تعديل العنصر GMSMapView.

خيارات الخريطة

عند إعداد وضع الخريطة، يتم ضبط خيارات الضبط باستخدام GMSMapViewOptions. تشمل سمات الخيارات frame أو camera أو mapID أو backgroundColor.

خيارات الخريطة
إطار صورة
القيمة: CGRect
إطار الخريطة يتم ضبط القيمة تلقائيًا على CGRectZero.
كاميرا
القيمة: GMSCameraPosition
الوضع التلقائي لكاميرا الخريطة
mapID
القيمة: GMSMapID
Google MapsID. معلمة اختيارية.
backgroundColor
القيمة: UIColor
يتم ضبط الإعداد التلقائي على UIColor.lightGray.

ضبط خيارات الخريطة

يمكنك ضبط خصائص الخيارات الخاصة بك أو ضبط قيمة GMSMapViewOptions مثيل بها بقيم تلقائية مباشرةً إلى GMSMapView.

Swift

let options = GMSMapViewOptions()
options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6)
let mapView = GMSMapView(options:options)

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:6];
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

في ما يلي مثال على تمرير كائن GMSMapViewOptions بالقيم التلقائية مباشرةً إلى GMSMapView.

Swift

let options = GMSMapViewOptions()
let mapView = GMSMapView(options:options) //initialized with default values

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; //initialized with default values

ضبط لون الخلفية

عند العمل في الوضع الداكن أو التبديل بين طرق عرض الخريطة، قد يكون من المفيد إلغاء لون خلفية الخريطة التلقائي. يمكن تحقيق ذلك من خلال ضبط سمة "خيارات الخريطة" backgroundColor.

Swift

let options = GMSMapViewOptions()
options.backgroundColor = UIColor.yellowColor
let mapView = GMSMapView(options:options)

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.backgroundColor = UIColor.yellowColor;
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

أنواع الخرائط

يمكنك تخصيص خريطتك باستخدام نوع من أنواع الخرائط العديدة. تحكم نوع الخريطة التمثيل العام للخريطة. على سبيل المثال، عادةً ما يحتوي الأطلس على خرائط سياسية تركز على إظهار الحدود، وخرائط الطرق التي تعرض جميع الطرق الخاصة بمدينة أو منطقة. توفِّر حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات iOS الأنواع التالية من الخرائط:

نوع الخريطة
عادي
القيمة: kGMSTypeNormal
خريطة طريق نموذجية. تعرض الطرق الطرق وبعض العناصر التي شيّدها البشر والمعالم الطبيعية المهمة، مثل الأنهار. ويمكن أيضًا رؤية تصنيفات الطرق والميزات.
سيارة هجينة
القيمة: kGMSTypeHybrid
بيانات صور القمر الصناعي مع إضافة خرائط الطرق ويمكن أيضًا رؤية تصنيفات الطرق والميزات.
القمر الصناعي
القيمة: kGMSTypeSatellite
بيانات صور القمر الصناعي. ولا يمكن رؤية تصنيفات الطرق والميزات.
التضاريس
القيمة: kGMSTypeTerrain
البيانات الطبوغرافية. تحتوي الخريطة على ألوان وخطوط وتصنيفات محيطة وتظليل للمنظور. يمكن أيضًا رؤية بعض الطرق والتصنيفات.
لا ينطبق
القيمة: kGMSTypeNone
لا توجد مربعات خرائط. لن يتم عرض مربّعات الخريطة الأساسية. ويكون هذا الوضع مفيدًا مع طبقات المربّعات. يتم إيقاف عرض بيانات حركة المرور عندما يتم ضبط نوع الخريطة على "لا شيء".

تغيير نوع الخريطة

لضبط نوع الخريطة، يجب تعيين قيمة جديدة للسمة GMSMapView.mapType. على سبيل المثال، لعرض نوع خريطة القمر الصناعي:

Swift

let options = GMSMapViewOptions()
options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6)
let mapView = GMSMapView(options:options)
mapView.mapType = .satellite

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                  longitude:151.2086
                                                        zoom:6];
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
mapView.mapType = kGMSTypeSatellite;

يعرض المحدِّد أدناه مقارنة بين خرائط التضاريس والخرائط العادية والهجينة للموقع نفسه:

خرائط داخلية

عند مستويات التكبير العالية، ستعرض حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل iOS مخططات للمساحات الداخلية مثل المطارات ومراكز التسوق ومتاجر البيع بالتجزئة الكبيرة ومحطات النقل العام. يتم دمج مخططات الطوابق الداخلية في مربّعات الخرائط التلقائية لنوع الخريطة "العادية" (kGMSTypeNormal)، ويتم تفعيلها تلقائيًا عندما يكبّر المستخدم الخريطة، وتتلاشى عند تصغير الخريطة.

يمكنك إيقاف الخرائط الداخلية عن طريق ضبط السمة indoorEnabled الخاصة بسمة GMSMapView على NO.

Swift

mapView.isIndoorEnabled = false
      

Objective-C

mapView.indoorEnabled = NO;
      

بدلاً من ذلك، يمكنك إيقاف عنصر التحكّم في "منتقي الطابق" فقط.

جارٍ إضافة مخططات المباني

تتوفر مخططات الطوابق في مواقع جغرافية محددة. إذا كانت بيانات مخطط الطابق غير متاحة لمبنى تريد تسليط الضوء عليه في تطبيقك، يمكنك إجراء ما يلي:

  • إضافة مخططات الطابق إلى "خرائط Google" مباشرةً. هذا يجعل خططك متاحة لجميع مستخدمي خرائط Google.
  • عرض مخطط الطابق على أنه تراكب أرض. يتيح ذلك لمستخدمي تطبيقك فقط عرض مخططات الطابق.

طبقة حركة المرور

يمكنك منح المستخدمين إمكانية عرض الخريطة مع معلومات كثافة حركة المرور المتراكبة فوقها. يوفر هذا ملخصًا مرئيًا لوضع حركة المرور المحلية. يمكنك تفعيل طبقة حركة المرور وإيقافها من خلال استدعاء الطريقة trafficEnabled. يوضح المثال التالي كيفية ظهور طبقة حركة المرور على الخريطة.

خريطة Google تعرض
طبقة حركة المرور

تسهيل الاستخدام

يتم تلقائيًا إخفاء عناصر تسهيل الاستخدام على الخريطة. يمكنك تفعيل تسهيل الاستخدام من خلال ضبط السمة accessibilityElementsHidden في GMSMapView على NO. يؤدي هذا إلى إنشاء عناصر تسهيل الاستخدام للعناصر التي تظهر على سطح الفيديو (مثل GMSMarker ونوافذ المعلومات، GMSPolyline وغير ذلك).

Swift

mapView.accessibilityElementsHidden = false
      

Objective-C

mapView.accessibilityElementsHidden = NO;
      

تتوافق هذه السمة مع بروتوكول UIAccessibility غير الرسمي، باستثناء أنّ القيمة التلقائية في حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل iOS هي YES.

موقعي الجغرافي

بشكل افتراضي، لا يتم عرض أي بيانات موقع على الخريطة. يمكنك تفعيل نقطة "موقعي" الزرقاء والبوصلة عن طريق ضبط myLocationEnabled على GMSMapView.

Swift

mapView.isMyLocationEnabled = true
      

Objective-C

mapView.myLocationEnabled = YES;
      

يؤدي تفعيل هذه الميزة إلى توفير الموقع الجغرافي الحالي للمستخدم من خلال myLocation. وقد لا تكون هذه السمة متاحة على الفور، مثلاً إذا طلب نظام iOS من المستخدم السماح بالوصول إلى هذه البيانات. إنها nil في هذه الحالة.

Swift

print("User's location: \(String(describing: mapView.myLocation))")
      

Objective-C

NSLog(@"User's location: %@", mapView.myLocation);
      

المباني الثلاثية الأبعاد

عندما يُنظر إلى الكثير من المدن عن قرب، ستظهر مبانٍ ثلاثية الأبعاد، كما يمكن رؤيتها في صورة مدينة سياتل بولاية واشنطن أدناه.

خريطة ثلاثية الأبعاد للمباني في مدينة سياتل، واشنطن.

يمكنك إيقاف المباني الثلاثية الأبعاد من خلال ضبط خاصية GMSMapView المقابلة في Swift أو Objective-C، كما هو موضَّح أدناه:

Swift

mapView.isBuildingsEnabled = false
      

Objective-C

[mapView setBuildingsEnabled:NO];
      

المساحة المتروكة في الخريطة

تم تصميم "خرائط Google" لملء المنطقة المحدّدة في GMSMapView. يتم تحديد عدة جوانب لكيفية ظهور الخريطة وسلوكها من خلال أبعاد العرض:

  • يعكس هدف الكاميرا وسط المنطقة المبطّنة.
  • يتم وضع عناصر التحكم في الخريطة نسبةً إلى حواف الخريطة.
  • تظهر المعلومات القانونية، مثل بيانات حقوق الطبع والنشر أو شعار Google، على طول الحافة السفلية من الخريطة.

يمكنك إضافة مساحة متروكة حول حواف الخريطة باستخدام علامة GMSMapView.padding. تستمر الخريطة في ملء الحاوية بالكامل، ولكن تعمل النصوص والتحكم في تحديد الموضع وإيماءات الخريطة وحركات الكاميرا كما لو تم وضعها في مساحة أصغر. ينتج عن ذلك التغييرات التالية:

  • ترتبط حركات الكاميرا باستخدام طلبات البيانات من واجهة برمجة التطبيقات أو الضغطات على الأزرار (على سبيل المثال، البوصلة أو موقعي الجغرافي) مع المنطقة المبطّنة.
  • تعرض GMSMapView.projection توقعًا يتضمن فقط المنطقة المحشوة.
  • تتم إزاحة عناصر تحكم واجهة المستخدم من حافة الحاوية بالعدد المحدد من النقاط.

يمكن أن تكون المساحة المتروكة مفيدة عند تصميم واجهات المستخدم التي تتداخل مع جزء من الخريطة. على سبيل المثال، في الصورة، تكون الخريطة مبطّنة على طول الحافتين العلوية واليمنى. ويتم عرض عناصر التحكم المرئية في الخريطة والنص القانوني على حواف المنطقة المبطّنة، كما تظهر باللون الأخضر، بينما تستمر الخريطة في ملء الحاوية بالكامل، كما هو موضح باللون الأزرق. في هذا المثال، يمكنك جعل القائمة عائمة فوق الجانب الأيمن من الخريطة دون إخفاء عناصر التحكم في الخريطة.

المساحة المتروكة للخريطة

لإضافة مساحة متروكة إلى خريطتك، يمكنك إنشاء عنصر UIEdgeInsets وتمريره إلى GMSMapView.السمة padding.

Swift

// Insets are specified in this order: top, left, bottom, right
let mapInsets = UIEdgeInsets(top: 100.0, left: 0.0, bottom: 0.0, right: 300.0)
mapView.padding = mapInsets
      

Objective-C

// Insets are specified in this order: top, left, bottom, right
UIEdgeInsets mapInsets = UIEdgeInsetsMake(100.0, 0.0, 0.0, 300.0);
mapView.padding = mapInsets;