توضح هذه النظرة العامة كيفية إعداد خريطة تمت إضافتها إلى تطبيق iOS باستخدام حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط 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;