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