إعداد خريطة

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

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

نظرة عامة

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

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

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

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

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

خيارات الخريطة
إطار صورة
القيمة: CGRect
إطار الخريطة. يتم ضبط الإعدادات التلقائية على CGRectZero.
كاميرا
القيمة: GMSCameraPosition
موضع كاميرا الخريطة التلقائي.
mapID
القيمة: GMSMapID
معرّف خريطة Google. مَعلمة اختيارية.
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;
      

نظام ألوان الخريطة

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

استخدام GMSMapView overrideUserInterfaceStyle: لتعيين وتحديث نظام ألوان الخريطة.

Swift

let options = GMSMapViewOptions()
// Map is init to use light mode by default.
let mapView = GMSMapView(options: options)
// Set map to use dark mode.
mapView.overrideUserInterfaceStyle = .dark
// Set map to use light mode.
mapView.overrideUserInterfaceStyle = .light
// Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle
mapView.overrideUserInterfaceStyle = .unspecified

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
// Map is init to always use light mode.
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
// Set map to use dark mode.
mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleDark;
// Set map to use light mode.
mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
// Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle
mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleUnspecified;