إعداد خريطة

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

توضح هذه النظرة العامة كيفية إعداد خريطة تمت إضافتها إلى تطبيق iOS باستخدام حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط 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 على طول الحافة السفلية للخريطة.

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

  • حركات الكاميرا باستخدام طلبات بيانات من واجهة برمجة التطبيقات أو الضغطات على الأزرار (مثل، البوصلة، الموقع) نسبةً إلى المنطقة ذات المساحة المتروكة.
  • تعرض الدالة 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;