تتيح لك ميزة "التجوّل الافتراضي" في "خرائط Google" استكشاف أماكن حول العالم من خلال صور بزاوية 360 درجة على مستوى الشارع. يمكنك استكشاف المعالم العالمية أو الاطّلاع على عجائب طبيعية أو التنقّل في رحلة أو عرض الجزء الخارجي من نشاطك التجاري.
نظرة عامة
يوفّر "التجوّل الافتراضي من Google" إطلالات بانورامية بزاوية 360 درجة من الطرق المحدّدة
في جميع أنحاء منطقة التغطية. إنّ التغطية المتاحة من خلال حزمة تطوير البرامج (SDK) هي
نفسها التغطية المتاحة في تطبيق "خرائط Google" لأجهزة iOS أو
https://maps.google.com/
. يمكنك الاطّلاع على مزيد من المعلومات حول
"التجوّل الافتراضي" والاطّلاع على المناطق المتاحة فيها على خريطة تفاعلية، وذلك من خلال الانتقال إلى لمحة عن "التجوّل الافتراضي".
توفّر حزمة تطوير البرامج (SDK) لتطبيق "خرائط Google" على نظام التشغيل iOS خدمة "التجوّل الافتراضي"
للحصول على الصور المستخدَمة في ميزة "التجوّل الافتراضي" في "خرائط Google" ومعالجتها.
يتم عرض صور "التجوّل الافتراضي" على شكل صور بانورامية ويمكن مشاهدتها من داخل "عارض التجوّل الافتراضي"، وهو عنصر من النوع
GMSPanoramaView
.
مناظر بانورامية في "التجوّل الافتراضي"
كل صورة بانورامية في "التجوّل الافتراضي" هي صورة أو مجموعة صور تقدّم عرضًا كاملاً بزاوية 360 درجة من موقع واحد. تتوافق الصور مع الإسقاط المتساوي المستطيل (Plate Carrée)، الذي يتضمّن عرضًا أفقيًا بزاوية 360 درجة (بالاستناد إلى محيط كامل) وعرضًا عموديًا بزاوية 180 درجة (من أعلى إلى أسفل). تحدِّد الصورة البانورامية الناتجة بزاوية 360 درجة إسقاطًا على كرة مع لف الصورة على السطح ثنائي الأبعاد لتلك الكرة.
يمكن عرض صور بانورامية في "التجوّل الافتراضي" باستخدام العنصر
GMSPanoramaView
. يوفّر هذا العنصر عارضًا سيعرض المشهد panoramic ككرة، مع كاميرا في مركزها. يمكنك برمجيًا
التحكّم في اتجاه الكاميرا، بالإضافة إلى العديد من السمات التي تخصيص
المشاهد.
الوصول إلى بيانات "التجوّل الافتراضي"
يتم تحديد المناظر البانورامية في "التجوّل الافتراضي" من خلال أحد عنصرَي البيانات الوصفية التاليَين:
panoramaID
- المعرّف الفريد لمشهد بانورامي في "التجوّل الافتراضي" قد يتغيّر هذا
panoramaID
بمرور الوقت، ولا يُعدّ مناسبًا كمرجع طويل المدى أو مُبرمَج بشكلٍ ثابت. من الأفضل استخدامpanoramaID
لتوفير إمكانية الوصول الآلي إلى صور مختلفة في "التجوّل الافتراضي". coordinate
- الموقع الجغرافي الدقيق لهذه الصورة، مُعبَّرًا عنه على شكل
CLLocationCoordinate2D
. استخدِمcoordinate
لأجل التخزين الدائم لموقع بانورامي، أو لترجمة إجراءات المستخدم على الخريطة إلى صورة في "التجوّل الافتراضي".
يتم تخزين كل من panoramaID
وcoordinate
كسمات لعنصر
GMSPanorama
. يمكنك طلب GMSPanorama
من
GMSPanoramaService
باستخدام coordinate
أو panoramaID
. وسيتضمّن العنصر
المنتج كلاً من قطعتَي البيانات الوصفية، بالإضافة إلى صفيف من
الروابط المؤدية إلى مناظر بانورامية قريبة.
تحديد موقع الصورة البانورامية
يمكن تحديد موقع الصورة البانورامية في "التجوّل الافتراضي" استنادًا إلى الإحداثيات.
تطلب طريقة
moveNearCoordinate
صورة بانورامية بالقرب من الإحداثيات.تتشابه طريقة
moveNearCoordinate:radius
، ولكنها تسمح لك بتحديد دائرة بحث، بوحدة متر، حول الإحداثية.تسمح لك طريقة
moveNearCoordinate:source
بتحديد مصدر. يكون المصدر مفيدًا إذا كنت تريد حصر "التجوّل الافتراضي" في البحث عن panoramas التي تكون خارج المباني فقط. تكون الصور البانورامية للمواقع الجغرافية تلقائيًا إما داخل أو خارج المبنى. يُرجى العِلم أنّه قد لا تتوفّر صور بانورامية في الهواء الطلق للموقع الجغرافي المحدّد.تسمح لك طريقة
moveNearCoordinate:radius:source
بتحديد كل من نصف القطر والمصدر.
عرض صور "التجوّل الافتراضي"
إضافة عارض "التجوّل الافتراضي"
في ما يلي الخطوات الأساسية لإضافة مشاهد:
- (مرة واحدة) اتّبِع الخطوات الواردة في البدء للحصول على حزمة تطوير البرامج (SDK)، والحصول على مفتاح وإضافة الإطارات الأساسية المطلوبة.
- أنشئ
ViewController
أو عدِّله. إذا كان سيتم عرض البانوراما عندما يصبح عنصر التحكّم في العرض هذا مرئيًا، احرص على إنشائه ضمن طريقةloadView
. - أنشئ فئة
GMSPanoramaView
وأنشئ مثيلًا لها باستخدام الأسلوبGMSPanoramaView
initWithFrame:
. إذا كان سيتم استخدام هذا العنصر كعرض الوحيد لوحدة التحكّم في العرض، يمكن استخدام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
.