
تتيح لك ميزة "التجوّل الافتراضي" في "خرائط Google" استكشاف أماكن حول العالم من خلال صور بزاوية 360 درجة على مستوى الشارع. يمكنك استكشاف المَعالم الشهيرة في العالم ومشاهدة عجائب الدنيا الطبيعية والتنقّل في رحلة أو عرض الجزء الخارجي من نشاطك التجاري.
نظرة عامة
تقدّم ميزة "التجوّل الافتراضي من Google" إطلالات بانورامية بزاوية 360 درجة
من الطرق المحدّدة في منطقة التغطية. إنّ التغطية المتاحة
من خلال حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" هي نفسها التغطية المتاحة في تطبيق "خرائط 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وأنشئ مثيلًا لها باستخدام الطريقةGMSPanoramaViewinitWithFrame:. إذا كان سيتم استخدام هذا العنصر كعرض وحيد لعنصر التحكّم في العرض، يمكن استخدامCGRectZeroكإطار للخريطة، وسيتم تغيير حجم الخريطة تلقائيًا. - اضبط عنصر
GMSPanoramaViewعلى أنّه عرض "عنصر التحكّم في العرض". على سبيل المثال:self.view = panoView;. - اضبط الموقع الجغرافي لصورة "التجوّل الافتراضي" باستخدام إحدى methods مثل
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" لأجهزة 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.