توضّح هذه النظرة العامة كيفية ضبط خريطة تمت إضافتها إلى تطبيق 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" للتطبيقات المتوافقة مع iOS عرض شبكة النقل العام في مدينة معيّنة على خريطتك باستخدام طريقة transitEnabled. عند تفعيل طبقة حركة المرور، وتوسيط الخريطة على مدينة
تتوفّر فيها معلومات النقل العام، ستعرض الخريطة خطوط النقل العام الرئيسية كخطوط
سميكة وملوّنة. يتم ضبط لون الخط استنادًا إلى المعلومات الواردة من
مشغّل خط النقل العام. سيؤدي تفعيل طبقة النقل العام إلى تغيير نمط
الخريطة الأساسية لإبراز مسارات النقل العام بشكل أفضل.
إذا كنت تمثّل هيئة عامة تشرف على وسائل النقل العام في مدينتك وتريد تضمين بياناتك، يُرجى زيارة الموقع الإلكتروني لبرنامج شركاء Google Transit لمعرفة المزيد.
يوضّح المثال التالي كيف قد تظهر طبقة النقل العام على الخريطة.

تسهيل الاستخدام
يتم تلقائيًا إخفاء عناصر تسهيل الاستخدام على الخريطة. يمكنك تفعيل
أدوات تسهيل الاستخدام من خلال ضبط السمة 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;
لإنشاء أنماط مخصّصة فاتحة وداكنة لخرائطك، استخدِم ميزة تصميم الخرائط باستخدام السحابة الإلكترونية.