يتناول هذا الموضوع كيفية تهيئة خريطة تمت إضافتها إلى تطبيق iOS باستخدام حزمة SDK للخرائط لنظام التشغيل iOS.
نظرة عامة
بعد إضافة خريطة إلى تطبيقك، يمكنك تهيئة الإعدادات الأولية وإعدادات وقت التشغيل للخريطة. للحصول على تفاصيل حول إضافة حاوية خريطة، راجع إضافة خريطة.
تتضمن إعدادات الخريطة الأولية ما يلي:
- موضع الكاميرا، بما في ذلك: الموقع والتكبير/التصغير والحمل والإمالة. راجع الكاميرا وطريقة العرض للحصول على تفاصيل حول وضع الكاميرا.
- نوع الخريطة.
- مكوّنات واجهة المستخدم المطلوب عرضها، مثل أزرار التكبير/التصغير والبوصلة.
- الإيماءات التي تريد تفعيلها.
في وقت التشغيل، يمكنك ضبط هذه الإعدادات وبعض إعدادات الإضافة من خلال تعديل الكائن GMSMapView
.
أنواع الخريطة
يمكنك تخصيص خريطتك باستخدام أحد أنواع الخرائط المتعددة. يحكم نوع الخريطة التمثيل الإجمالي للخريطة. فعلى سبيل المثال، تحتوي أطلس عادة على خرائط سياسية تركز على عرض الحدود، وخرائط طريق تعرض جميع الطرق لمدينة أو منطقة. توفر حزمة SDK للخرائط لنظام التشغيل iOS الأنواع التالية من الخرائط:
نوع الخريطة | |
---|---|
عادي | القيمة:
kGMSTypeNormal خريطة طريق نموذجية. تعرض الطرق وبعض الميزات التي بناها البشر والميزات الطبيعية المهمة مثل الأنهار. تظهر أيضًا تصنيفات الطرق والميزات.
|
سيارة هجينة | القيمة:
kGMSTypeHybrid بيانات صور القمر الصناعي مع إضافة خرائط الطرق. تظهر أيضًا تصنيفات الطرق والميزات. |
القمر الصناعي | القيمة:
kGMSTypeSatellite بيانات صور القمر الصناعي. تصنيفات الطرق والميزات غير مرئية.
|
التضاريس | القيمة:
kGMSTypeTerrain البيانات الطبوغرافية. تتضمن الخريطة ألوانًا وخطوطًا كونتورة وتصنيفات وتظليلًا للمنظور. تظهر أيضًا بعض الطرق والتصنيفات.
|
لا ينطبق | القيمة:
kGMSTypeNone بلا مربعات خرائط. لن يتم عرض مربعات الخرائط الأساسية. وهذا الوضع مفيد
إلى جانب طبقات
المربّعات. سيتم تعطيل عرض بيانات حركة المرور عند تعيين نوع الخريطة على "بدون". |
تغيير نوع الخريطة
لضبط نوع الخريطة، عليك تحديد قيمة جديدة للسمة GMSMapView.mapType
. على سبيل المثال، لعرض نوع خريطة القمر الصناعي:
Swift
let camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6) let mapView = GMSMapView.map(withFrame: .zero, camera: camera) mapView.mapType = .satellite
Objective-C
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; mapView.mapType = kGMSTypeSatellite;
تعرض أداة الاختيار أدناه مقارنة بين التضاريس، والخرائط العادية والمختلطة للموقع نفسه:
خرائط داخلية
عند مستويات التكبير/التصغير العالية، ستعرض حزمة تطوير البرامج (SDK) للخرائط لنظام التشغيل 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 للخرائط لنظام التشغيل iOS هي YES
.
موقعي الجغرافي
لا يتم عرض بيانات الموقع على الخريطة بشكل افتراضي. يمكنك تفعيل نقطة "موقعي" الزرقاء واتجاه البوصلة عن طريق تعيين myLocationEnabled
على
GMSMapView
.
Swift
mapView.isMyLocationEnabled = true
Objective-C
mapView.myLocationEnabled = YES;
سيؤدي تفعيل هذه الميزة أيضًا إلى توفير الموقع الجغرافي الحالي للمستخدم من خلال السمة myLocation
. قد لا يكون هذا الموقع متاحًا في الحال، على سبيل المثال، إذا طلب المستخدم iOS السماح بالوصول إلى هذه البيانات. سيكون العدد صفرًا في هذه الحالة.
Swift
print("User's location: \(String(describing: mapView.myLocation))")
Objective-C
NSLog(@"User's location: %@", mapView.myLocation);
مبانٍ ثلاثية الأبعاد
في الكثير من المدن، عندما يتم عرضها عن قرب، سيكون لديها مبانٍ ثلاثية الأبعاد مرئية، كما يمكن مشاهدتها في سياتل، واشنطن أدناه.

يمكنك إيقاف المباني الثلاثية الأبعاد من خلال إعداد الخاصية
GMSMapView
المناسبة في Swift أو GOAL-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;