
تتيح لك ميزة "التجوّل الافتراضي من خرائط Google" استكشاف الأماكن حول العالم من خلال صور على مستوى الشارع بزاوية 360 درجة. يمكنك استكشاف المعالم العالمية أو مشاهدة عجائب الدنيا الطبيعية أو التنقّل في رحلة أو عرض واجهة مؤسستك.
نظرة عامة
توفّر ميزة "التجوّل الافتراضي من Google" عروضًا بانورامية بزاوية 360 درجة من طرق محدّدة في جميع أنحاء منطقة التغطية. تتطابق التغطية المتاحة
من خلال حزمة تطوير البرامج (SDK) مع التغطية المتاحة لتطبيق خرائط Google على iOSأو
https://maps.google.com/. يمكنك قراءة المزيد عن ميزة "التجوّل الافتراضي" والاطّلاع على المناطق المتوافقة على خريطة تفاعلية في مقالة لمحة عن ميزة "التجوّل الافتراضي" .
توفر حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" للتطبيقات المتوافقة مع iOS خدمة "التجوّل الافتراضي" للحصول على الصور المستخدَمة في ميزة "التجوّل الافتراضي من خرائط Google" ومعالجتها. يتم عرض صور "التجوّل الافتراضي"
كصور بانورامية من خلال
عارض "التجوّل الافتراضي"، وهو عنصر من النوع
GMSPanoramaView.
بانوراما في "التجوّل الافتراضي"
كل بانوراما في "التجوّل الافتراضي" هي صورة أو مجموعة صور توفّر عرضًا كاملاً بزاوية 360 درجة من موقع جغرافي واحد. تتطابق الصور مع الإسقاط المستطيل المتساوي (Plate Carrée)، الذي يحتوي على عرض أفقي بزاوية 360 درجة (تغطية كاملة) وعرض عمودي بزاوية 180 درجة (من الأعلى إلى الأسفل مباشرةً). تحدّد الصورة البانورامية الناتجة بزاوية 360 درجة إسقاطًا على كرة يتم لف الصورة على السطح الثنائي الأبعاد لتلك الكرة.
يمكن عرض بانوراما في "التجوّل الافتراضي" باستخدام العنصر GMSPanoramaView. يوفّر هذا العنصر عارضًا يعرض الصورة البانورامية على شكل كرة، مع وجود كاميرا في مركزها. يمكنك التحكّم في اتجاه الكاميرا برمجيًا، بالإضافة إلى العديد من الخصائص التي تخصّص العارض.
الوصول إلى بيانات "التجوّل الافتراضي"
يتم تحديد الصور البانورامية في ميزة "التجوّل الافتراضي" باستخدام أحد نوعَي البيانات الوصفية التالية:
panoramaID- المعرّف الفريد لصورة بانورامية في ميزة "التجوّل الافتراضي" قد يتغيّر هذا
panoramaIDبمرور الوقت، ولا يمكن استخدامه كمرجع طويل الأجل أو مرجع مبرمَج، . من الأفضل استخدامpanoramaIDلتوفير وصول برمجي إلى صور مختلفة في ميزة "التجوّل الافتراضي". coordinate- الموقع الجغرافي الدقيق لهذه الصورة، معبّرًا عنه كـ
CLLocationCoordinate2D. استخدِمcoordinateللتخزين المستمر لموقع جغرافي بانورامي، أو لترجمة إجراءات المستخدم على الخريطة إلى صورة في ميزة "التجوّل الافتراضي".
يتم تخزين كل من panoramaID وcoordinate كخصائص للعنصر GMSPanorama. يمكنك طلب GMSPanorama من الـ
GMSPanoramaService باستخدام إما الـcoordinate أو الـpanoramaID. سيشمل العنصر الناتج كلا نوعَي البيانات الوصفية، بالإضافة إلى مجموعة من الروابط المؤدية إلى الصور البانورامية القريبة.
ضبط موقع الصورة البانورامية
يمكن ضبط موقع بانوراما في "التجوّل الافتراضي" استنادًا إلى الإحداثيات.
يطلب الإجراء
moveNearCoordinateصورة بانورامية بالقرب من الإحداثيات.يشبه الإجراء
moveNearCoordinate:radiusالإجراء السابق، ولكنّه يتيح لك تحديد نصف قطر البحث بالأمتار حول الإحداثيات.يتيح لك الإجراء
moveNearCoordinate:sourceتحديد مصدر. يكون المصدر مفيدًا إذا كنت تريد حصر ميزة "التجوّل الافتراضي" في البحث عن الصور البانورامية الخارجية فقط. تكون الصور البانورامية للمواقع الجغرافية إما داخلية أو خارجية بشكلٍ تلقائي. يُرجى العِلم أنّه قد لا تتوفّر صور بانورامية خارجية للموقع الجغرافي المحدّد.يتيح لك الإجراء
moveNearCoordinate:radius:sourceتحديد نصف قطر ومصدر.
عرض صور "التجوّل الافتراضي"
إضافة عارض "التجوّل الافتراضي"
في ما يلي الخطوات الأساسية لإضافة عارض:
- (مرة واحدة) اتّبِع الخطوات الواردة في مقالة البدء للحصول على حزمة تطوير البرامج (SDK)، ومفتاح واضافة الأُطر المطلوبة.
- أنشئ
ViewControllerأو عدِّله. إذا كان سيتم عرض الصورة البانورامية عندما يصبح وحدة التحكّم في العرض هذه مرئية، احرص على إنشائها ضمن الإجراءloadView. - أنشئ فئة
GMSPanoramaViewوأنشئ مثيلاً لها باستخدام الإجراءinitWithFrame:فيGMSPanoramaView. إذا كان سيتم استخدام هذا العارض كالعرض الوحيد لوحدة التحكّم في العرض، يمكن استخدامCGRectZeroكإطار للخريطة، وسيتم تغيير حجم الخريطة تلقائيًا. - اضبط العنصر
GMSPanoramaViewكعرض لوحدة التحكّم في العرض. على سبيل المثال،self.view = panoView;. - اضبط موقع صورة "التجوّل الافتراضي" باستخدام إجراء مثل
moveNearCoordinate:.
يضيف المثال أدناه عارض "التجوّل الافتراضي" إلى أحد التطبيقات.
Swift
import GoogleMaps class StreetView: UIViewController { override func loadView() { let panoView = GMSPanoramaView(frame: .zero) self.view = panoView panoView.moveNearCoordinate(CLLocationCoordinate2D(latitude: -33.732, longitude: 150.312)) } }
Objective-C
#import "StreetView.h" @import GoogleMaps; @interface StreetView () @end @implementation StreetView - (void)loadView { GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero]; self.view = panoView; [panoView moveNearCoordinate:CLLocationCoordinate2DMake(-33.732, 150.312)]; } @end
تخصيص العارض
يمكنك تخصيص العارض من خلال حصر الإيماءات المتاحة. بشكلٍ تلقائي، يتم تفعيل جميع الإيماءات، مثل التحريك والتكبير/التصغير والانتقال إلى الصور البانورامية المجاورة.
يتم التحكّم في الإيماءات الفردية من خلال خصائص GMSPanoramaView.
تفعِّل هذه الخصائص الإيماءات التي يتحكّم فيها المستخدم أو توقفها، ولكن تظل التغييرات البرمجية ممكنة عند إيقاف الإيماءة.
orientationGestures- تحديد ما إذا كان بإمكان المستخدم إعادة توجيه الكاميرا من خلال النقر أو
السحب اضبط القيمة على
NOلإيقاف تغييرات اتجاه الكاميرا. zoomGestures- تحديد ما إذا كان بإمكان المستخدم التصغير والتكبير بإصبعين اضبط القيمة على
NOلإيقاف التكبير/التصغير. navigationGestures- تحديد ما إذا كان بإمكان المستخدم تغيير الصورة البانورامية المرئية يمكن للمستخدمين
النقر مرة واحدة على روابط التنقّل أو النقر مرّتين على العرض لتغيير
الصور البانورامية. اضبط القيمة على
NOلإيقاف تغييرات التنقّل.
يمكنك تفعيل جميع الإيماءات أو إيقافها في آنٍ واحد باستخدام الإجراء setAllGesturesEnabled:.
Swift
panoView.setAllGesturesEnabled(false)
Objective-C
[panoView setAllGesturesEnabled:NO];
تشغيل ميزة "التجوّل الافتراضي" باستخدام نظام عناوين URL
يمكن عرض صور "التجوّل الافتراضي من Google" من داخل تطبيق "خرائط Google" على iOS. يمكنك تشغيل تطبيق "خرائط Google" على iOS في وضع "التجوّل الافتراضي" باستخدام مخطّط URL comgooglemaps من خلال ضبط المَعلمة mapmode على streetview. يظهر أدناه مثال على عنوان URL سيؤدي إلى تشغيل ميزة "التجوّل الافتراضي". لمزيد من المعلومات، يُرجى الرجوع إلى
مستندات مخطط URL.
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
مواقع "التجوّل الافتراضي" ووجهة النظر
يتيح لك GMSPanoramaCamera ضبط وجهة نظر كاميرا "التجوّل الافتراضي" كمجموعة من الاتجاه والانحراف والتكبير/التصغير.
سيؤدي الرمز البرمجي أدناه إلى توجيه الكاميرا نحو الجنوب، وإلى الأسفل قليلاً.
Swift
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
Objective-C
panoView.camera = [GMSPanoramaCamera cameraWithHeading:180 pitch:-10 zoom:1];
الاتجاه
يحدّد موقع "التجوّل الافتراضي" موضع تركيز الكاميرا لصورة، ولكنّه لا يحدّد اتجاه الكاميرا لتلك الصورة.
لهذا الغرض، يحدّد العنصر GMSOrientation سمتَين:
headingيحدّد زاوية الدوران حول موضع الكاميرا بالدرجات بالنسبة إلى الشمال الحقيقي. يتم قياس الاتجاهات في اتجاه عقارب الساعة: الشمال الحقيقي هو 0، والشرق هو 90، والجنوب هو 180، والغرب هو 270.pitch(القيمة التلقائية هي0) يحدّد زاوية الانحراف "للأعلى" أو "للأسفل" من الانحراف التلقائي الأولي للكاميرا، والذي يكون غالبًا (ولكن ليس دائمًا) أفقيًا. (على سبيل المثال، من المرجّح أن تكون الصورة التي تم التقاطها على تلّ ذات انحراف تلقائي غير أفقي). يتم قياس زوايا الانحراف بقيم موجبة عند النظر للأعلى (إلى +90 درجة للأعلى مباشرةً وعموديًا على الانحراف التلقائي) وقيم سالبة عند النظر للأسفل (إلى -90 درجة للأسفل مباشرةً وعموديًا على الانحراف التلقائي).
Zoom
تتيح ميزة "التجوّل الافتراضي" مستويات مختلفة من تفاصيل الصورة من خلال استخدام التكبير/التصغير. يمكنك ضبط مستوى التكبير/التصغير برمجيًا، أو يمكن للمستخدمين تغيير المستوى في العارض من خلال التصغير والتكبير بإصبعين.
تحريك الكاميرا
بعد إنشاء GMSPanoramaView، سواء كانت الكاميرا مضبوطة أو تلقائية، يمكنك تغييرها بإحدى الطرق التالية: عند تغيير الكاميرا، يمكنك اختيار تحريك حركة الكاميرا الناتجة. تتم عملية التحريك من خلال الربط بين سمات الكاميرا الحالية وسمات الكاميرا الجديدة.
يمكنك تعديل العنصر GMSPanoramaCamera وضبطه على السمة camera في GMSPanoramaView. سيؤدي ذلك إلى توجيه الكاميرا إلى وجهة النظر الجديدة بدون تحريك. يمكن إنشاء GMSCameraPosition لضبط أي مجموعة من الاتجاه والتكبير/التصغير.
Swift
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
Objective-C
panoView.camera = [GMSPanoramaCamera cameraWithHeading:180 pitch:-10 zoom:1];
يمكنك تحريك عملية الانتقال من خلال استدعاء الإجراء animateToCamera:animationDuration: في GMSPanoramaView.
بالإضافة إلى ذلك، يمكنك التحكّم في الكاميرا باستخدام Core Animation. يتوفّر ذلك من خلال CALayer المخصّص على GMSPanoramaView، وهو GMSPanoramaLayer.
العلامات ضمن ميزة "التجوّل الافتراضي"
يمكن للعنصر GMSPanoramaView عرض علامات الخريطة. يمكنك استخدام العنصر نفسه GMSMarker على GMSMapView أو GMSPanoramaView من خلال ضبط خصائصه المقابلة:
Swift
// Create a marker at the Eiffel Tower let position = CLLocationCoordinate2D(latitude: 48.858, longitude: 2.294) let marker = GMSMarker(position: position) // Add the marker to a GMSPanoramaView object named panoView marker.panoramaView = panoView // Add the marker to a GMSMapView object named mapView marker.map = mapView
Objective-C
// Create a marker at the Eiffel Tower CLLocationCoordinate2D position = CLLocationCoordinate2DMake(48.858,2.294); GMSMarker *marker = [GMSMarker markerWithPosition:position]; // Add the marker to a GMSPanoramaView object named panoView marker.panoramaView = panoView; // Add the marker to a GMSMapView object named mapView marker.map = mapView;
سيتم تغيير حجم العلامات كدالة للمسافة بين موضع العلامة وموقع GMSCameraView. إذا أصبحت هذه المسافة كبيرة جدًا، سيصبح حجم العلامة صغيرًا جدًا بحيث لا يمكن عرضها وسيتم إخفاؤها.
اضبط السمة panoramaView على nil لإزالتها من GMSPanoramaView.
Swift
marker.panoramaView = nil
Objective-C
marker.panoramaView = nil;
الفعاليات
يمكنك الاستماع إلى الأحداث التي تحدث على بانوراما في "التجوّل الافتراضي"، مثل عندما ينقر المستخدم على البانوراما. للاستماع إلى الأحداث، عليك تنفيذ البروتوكول
GMSPanoramaViewDelegate. راجِع
الدليل العام للأحداث وقائمة الإجراءات في
GMSPanoramaViewDelegate.