توضّح هذه النظرة العامة كيفية ضبط خريطة تمت إضافتها إلى تطبيق iOS باستخدام حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع iOS.
نظرة عامة
بعد إضافة خريطة إلى تطبيقك، يمكنك ضبط الخيارات الأولية وإعدادات وقت التشغيل للخريطة. لمعرفة التفاصيل حول إضافة حاوية خريطة، يُرجى الاطّلاع على مقالة إضافة خريطة.
تشمل إعدادات الخريطة الأولية ما يلي:
- وضع الكاميرا، بما في ذلك: الموقع الجغرافي والتكبير والاتجاه والميل. لمعرفة التفاصيل حول وضع الكاميرا، يُرجى الاطّلاع على مقالة الكاميرا والعرض.
- لون خلفية الخريطة.
- نوع الخريطة
- مكوّنات واجهة المستخدم التي سيتم عرضها، مثل أزرار التكبير و البوصلة.
- الإيماءات التي سيتم تفعيلها
في وقت التشغيل، يمكنك ضبط هذه الإعدادات وبعض الإعدادات الإضافية من خلال
تعديل
GMSMapView
عنصر.
خيارات الخريطة
عند تهيئة طريقة عرض الخريطة، يتم ضبط خيارات الضبط باستخدام
GMSMapViewOptions.
تشمل خصائص الخيارات frame أو camera أو mapID أو backgroundColor.
| خيارات الخريطة | |
|---|---|
| إطار صورة | القيمة:
CGRectإطار الخريطة يتم ضبط القيمة التلقائية على CGRectZero.
|
| كاميرا | القيمة:
GMSCameraPositionوضع الكاميرا التلقائي للخريطة
|
| mapID | القيمة:
GMSMapIDمعرّف خريطة Google مَعلمة اختيارية
|
| backgroundColor | القيمة:
UIColorيتم ضبط القيمة التلقائية على UIColor.lightGray
|
ضبط خيارات الخريطة
يمكنك إما ضبط خصائص الخيارات الخاصة بك، أو تمرير عنصر تم إنشاؤه باستخدام القيم التلقائية مباشرةً إلى GMSMapView.GMSMapViewOptions
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 للنقل العام لمزيد من المعلومات.
يوضّح المثال التالي كيف قد تظهر طبقة النقل العام على الخريطة.

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