توضِّح هذه النظرة العامة كيفية ضبط خريطة تمت إضافتها إلى تطبيق 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];
أنواع الخرائط
يمكنك تخصيص خريطتك باستخدام أحد أنواع الخرائط المتعددة. يحدِّد نوع الخريطة العرض العام للخريطة. على سبيل المثال، يحتوي الأطلس عادةً على خرائط سياسية تركّز على عرض الحدود، وخرائط طرق تعرض جميع الطرق في مدينة أو منطقة. تقدّم حزمة تطوير البرامج (SDK) لتطبيق "خرائط 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;
يعرض أداة الاختيار أدناه مقارنة بين الخرائط العادية والخرائط الهجينة والخرائط المتعلّقة بتضاريس الموقع الجغرافي نفسه:
خرائط داخلية
عند مستويات التكبير العالية، ستعرِض حزمة تطوير البرامج (SDK) لتطبيق "خرائط Google" لنظام التشغيل iOS مخطّطات الطوابق للفضاءات الداخلية، مثل المطارات ومراكز التسوّق ومتاجر البيع بالتجزئة الكبيرة ومحطات النقل العام. يتم دمج مخططات الطوابق الداخلية في مربّعات الخريطة التلقائية لنوع الخريطة "عادي" (kGMSTypeNormal
)، ويتم تفعيلها تلقائيًا عندما يزداد حجم الخريطة، وتتلاشى عندما يتم تصغيرها.
يمكنك إيقاف الخرائط الداخلية من خلال ضبط سمة indoorEnabled
الخاصة بملف
GMSMapView
على NO
.
Swift
mapView.isIndoorEnabled = false
Objective-C
mapView.indoorEnabled = NO;
بدلاً من ذلك، يمكنك إيقاف عنصر التحكّم في أداة اختيار الطوابق فقط.
إضافة مخطّطات الطوابق
تتوفّر المخطّطات الأرضية في مواقع جغرافية محدّدة. إذا لم تكن بيانات المخطّط الأرضي متاحة لمبنى تريد إبرازه في طلبك، يمكنك إجراء ما يلي:
- إضافة خطط الطابق إلى "خرائط Google" مباشرةً سيؤدي ذلك إلى إتاحة خططك لجميع مستخدمي "خرائط Google".
- عرض مخطّط أرضي كـ طبقة أرض يتيح هذا الإعداد لمستخدمي تطبيقك فقط الاطّلاع على مخططات الطوابق.
طبقة الزيارات
يمكنك منح المستخدمين إمكانية عرض الخريطة مع معلومات كثافة ازدحام المركبات فوقها. ويقدّم هذا الملخّص المرئي معلومات عن
الزيارات المحلية. يمكنك تفعيل طبقة حركة المرور وإيقافها من خلال استدعاء trafficEnabled
الطريقة. يوضّح المثال التالي الشكل الذي قد تظهر به طبقة حركة المرور على الخريطة.
تسهيل الاستخدام
تكون عناصر تسهيل الاستخدام على الخريطة مخفية تلقائيًا. يمكنك تفعيل
تسهيل الاستخدام من خلال ضبط سمة accessibilityElementsHidden
الخاصة
GMSMapView
على NO
. يؤدي ذلك إلى إنشاء عناصر تسهيل الاستخدام
لعناصر التراكب (مثل GMSMarker
ونوافذ المعلومات وGMSPolyline
وما إلى ذلك).
Swift
mapView.accessibilityElementsHidden = false
Objective-C
mapView.accessibilityElementsHidden = NO;
يتم ضبط هذه السمة وفقًا للبروتوكول غير الرسمي UIAccessibility
، باستثناء أنّ القيمة الافتراضية في حزمة تطوير البرامج (SDK) لتطبيق "خرائط 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;