تتيح لك ميزة "التجوّل الافتراضي في خرائط 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
مواقع "التجوّل الافتراضي" ووجهات النظر (POV)
تتيح لك "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
.