تتيح لك ميزة "التجوّل الافتراضي في خرائط Google" استكشاف الأماكن حول العالم من خلال صور بزاوية 360 درجة على مستوى الشارع. يمكنك استكشاف المعالم حول العالم أو عرض العجائب الطبيعية أو التنقل في رحلة أو عرض المحيط الخارجي لنشاطك التجاري.
نظرة عامة
توفر ميزة "التجوّل الافتراضي من Google" عروضًا بانورامية بزاوية 360 درجة من الطرق المخصّصة
في جميع أنحاء منطقة التغطية. التغطية المتاحة من خلال حزمة تطوير البرامج (SDK)
هي نفسها التغطية المتوفّرة في تطبيق "خرائط Google" لأجهزة iOS أو
https://maps.google.com/
. يمكنك قراءة المزيد من المعلومات عن "التجوّل الافتراضي" ومشاهدة المناطق المتوافقة على خريطة تفاعلية، في لمحة عن "التجوّل الافتراضي".
توفر حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل iOS خدمة التجوّل الافتراضي
للحصول على الصور المستخدمة في ميزة "التجوّل الافتراضي" بخرائط Google ومعالجتها.
يتم عرض صور "التجوّل الافتراضي" كصورة بانورامية ويتم عرضها من داخل عارض "التجوّل الافتراضي"، وهو كائن من النوع GMSPanoramaView
.
صور "التجوّل الافتراضي" البانورامية
كل صورة بانورامية 360 درجة في "التجوّل الافتراضي" هي صورة أو مجموعة من الصور التي توفر عرضًا كاملاً بزاوية 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
وإنشاء مثيل لها باستخدام طريقة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
مواقع ومنظور التجوّل الافتراضي (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
.