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