تحتوي مساحة الاسم البانورامية المُوضَّحة هنا على المواقع التي توفِّر معلومات عن إنشاء صور بانورامية 360 درجة وعرضها، ويُشار إليها أحيانًا باسم الصور البانورامية، مثل الصور التي يتم إنشاؤها بواسطة ميزة الصور البانورامية 360 درجة في كاميرا Android 4.2. يجب أن تكون البيانات الوصفية متسلسلة ومضمّنة في صورة الصورة كما هو موضّح في معيار Adobe XMP (راجع المراجع في نهاية هذه الصفحة).
معرف الموارد المنتظم (URI) لمساحة الاسم هو http://ns.google.com/photos/1.0/panorama/
خصائص البيانات الوصفية
توضّح المخطّطات والجدول أدناه خصائص الصور البانورامية التي تم تلخيصها من خلال معلمات GPano. عند تعديل الصور البانورامية وعرضها، يُرجى التأكد من التحقق من البيانات الوصفية وتحديثها وفقًا لما هو موضح لاحقًا في هذا المستند. عند تحديد الأوضاع ووضع العناوين الأولية، يُرجى الحرص على اتّباع اصطلاحات زوايا زاوية التي سنناقشها لاحقًا في هذا المستند.
لاحظ أن منتجات Google تدعم التوقعات الكروية فقط. لا تتوافق حاليًا أي عمليات عرض إضافية مع الجهات الأخرى.
إسقاطات كروية
عرض أسطواني
والجدير بالذكر أنه إذا كان الجزء العلوي من الصورة الأسطوانية أعلى من الأفق، يجب أن تكون قيمة CropspedIsaTopPixels سالبة. وسيؤدي القيمة 0 لـ CroppedIsaTopPixels إلى وضع الجزء العلوي من الصورة في الأفق. تضع القيمة الموجبة لـ CroppedIsaTopPixels الجزء العلوي من الصورة تحت الأفق.
مرجع مَعلمة GPano
الاسم | النوع | مطلوبة | القيمة التلقائية (افتراض المشاهد) |
وصف الموقع | مطلوب اتخاذ إجراء إذا تم تعديل الصورة |
---|---|---|---|---|---|
GPano:استخدامبانوراماViewer | منطقي | لا | صحيح | لتحديد ما إذا كنت تريد عرض هذه الصورة في عارض صور بانورامية بدلاً من عرضها كصورة مسطحة عادية. يمكن تحديد ذلك استنادًا إلى الإعدادات المفضّلة للمستخدم أو برنامج التثبيت. قد يختار التطبيق الذي يعرض الصورة أو عرضها تجاهل ذلك. | التطوّر/الاقتصاص: ما مِن تغيير. قد يقرّر أحد التطبيقات تبديل هذا الإعداد إلى "خطأ" إذا انخفض حقل الرؤية عن قيمة معيّنة. |
GPano:CaptureSoftware | سلسلة | لا | لا تنطبق | إذا تم الالتقاط باستخدام تطبيق على جهاز جوّال، مثل هاتف Android، اسم التطبيق الذي تم استخدامه (مثل "صورة بانورامية 360 درجة"). يجب ترك هذا الحقل فارغًا إذا تم التقاط الصور المصدر يدويًا، مثل استخدام كاميرا رقمية ذات عدسة أحادية عاكسة (DSLR) على حامل ثلاثي القوائم. | لا تنطبق |
GPano:StitchingSoftware | سلسلة | لا | لا تنطبق | البرنامج الذي تم استخدامه لإنشاء صورة بانورامية 360 درجة. قد تكون هذه القيمة في بعض الأحيان هي نفس قيمة GPano:CaptureSoftware. | لا تنطبق |
GPano:ProjectionType | فتح اختيار النص | نعم |
متماثل الأبعاد |
نوع العرض المستخدَم في ملف الصورة. تدعم منتجات Google حاليًا القيمة المستطيلة فقط. | الحجم/الاقتصاص: بلا تغيير. |
GPano:PروزHeaderDegrees | حقيقي | لا، ولكنّه مطلوب للعرض على "خرائط Google" | لا تنطبق | رأس البوصلة، يتم قياسه بدرجات في اتجاه عقارب الساعة من الشمال، لتوسيط الصورة. يجب أن تكون القيمة >= 0 و < 360. | الحجم/الاقتصاص: بلا تغيير. |
GPano:PusePitchDegrees | حقيقي | لا | 0 | يجب أن تكون درجة الصوت في قياس أفقي. يجب أن تكون القيمة >= -90 و <= 90. | الحجم/الاقتصاص: بلا تغيير. |
GPano:PuseRollDegrees | حقيقي | لا | 0 | يتم قياس اللف، بالدرجة المئوية، للصورة التي يكون فيها المستوى مع الأفق 0. مع زيادة اللف، يتم تدوير الأفق عكس اتجاه عقارب الساعة في الصورة. يجب أن تكون القيمة > -180 و <= 180. | الحجم/الاقتصاص: بلا تغيير. |
GPano:InitialViewTitleDegrees | عدد صحيح | لا | 0 | زاوية العرض الأولية بالدرجات في اتجاه عقارب الساعة من الشمال الحقيقي، وليس بالنسبة إلى مركز البانو. | الحجم/الاقتصاص: بلا تغيير. |
GPano:InitialViewPitchDegrees | عدد صحيح | لا | 0 | زاوية العرض الأولي بالدرجات فوق أفق العالم الحقيقي، وليس بالنسبة إلى مركز البانو. | الحجم/الاقتصاص: بلا تغيير. |
GPano:InitialViewRollDegrees | عدد صحيح | لا | 0 | زاوية العرض الأولي بالدرجات حيث يكون المستوى مع أفق العالم الحقيقي 0 مع زيادة اللف، يتم تدوير الأفق عكس اتجاه عقارب الساعة في العرض. | الحجم/الاقتصاص: بلا تغيير. |
GPano:InitialHorizontalFOVDegrees | حقيقي | لا | لا تنطبق | حقل العرض الأفقي الأولي الذي يجب أن يشاهده المشاهد (بالدرجات). ويشبه هذا مستوى التكبير/التصغير. | لا تنطبق |
GPano:InitialVerticalFOVDegrees | حقيقي | لا | لا تنطبق | حقل الرؤية الرأسي الذي يجب أن يعرضه المشاهد (بالدرجات). ويشبه هذا مستوى التكبير/التصغير. في حال وجود كل من GPano:InitialHorizontalFOVDegrees وGPano:InitialVerticalFOVDegrees، تكون الأولوية لكل من GPano:InitialHorizontalFOVDegrees. استخدم InitialVerticalFOVDegrees إذا كان المحتوى الخاص بك يتم عرضه بنسب عرض إلى ارتفاع متعددة، وإذا كنت تفضّل أن يظل حقل الرؤية الرأسي ثابتًا بينما قد يتغيّر حقل العرض الأفقي. لا تتيح منتجات Google هذا الحقل حاليًا. | لا تنطبق |
GPano:FirstImageDate | التاريخ | لا | لا تنطبق | تاريخ ووقت أول صورة تم إنشاؤها في صورة بانورامية 360 درجة. | الحجم/الاقتصاص: بلا تغيير. |
GPano:تاريخ الصورة | التاريخ | لا | لا تنطبق | تاريخ ووقت آخر صورة تم إنشاؤها في صورة بانورامية 360 درجة. | الحجم/الاقتصاص: بلا تغيير. |
GPano:SourceالصورCount | عدد صحيح | لا | لا تنطبق | عدد الصور المصدر المستخدمة لإنشاء صورة بانورامية 360 درجة. | الحجم/الاقتصاص: بلا تغيير. |
GPano:ExposureLockUsed | منطقي | لا | لا تنطبق | عند التقاط صور فوتوغرافية فردية في مصدر محدّد، سواء تم قفل إعداد التعرّض للضوء بالكاميرا. | لا تنطبق |
GPano:CroppedIsaImageWidthPixel | عدد صحيح | نعم | لا تنطبق | العرض الأصلي بالبكسل (تساوي عرض الصورة الفعلية للصور غير المعدّلة). ويمكنك الاطّلاع على الرسومات التوضيحية أعلاه. | المقياس/الاقتصاص: يجب تعديل هذه الخاصية لتعكس الحجم الجديد للصورة. |
GPano:CroppedIsaImageHeightPixel | عدد صحيح | نعم | لا تنطبق | الارتفاع الأصلي بوحدات البكسل للصورة (يساوي ارتفاع الصورة الفعلي للصور غير المعدّلة). ويمكنك الاطّلاع على الرسومات التوضيحية أعلاه. | المقياس/الاقتصاص: يجب تعديل هذه الخاصية لتعكس الحجم الجديد للصورة. |
GPano:fullPanoWidthPixels | عدد صحيح | نعم | لا تنطبق | العرض الأصلي الكامل الذي تم اقتصاص الصورة منه. في حال التقاط صورة بانورامية واحدة فقط، يحدِّد ذلك عرض الصورة البانورامية الكاملة. ويمكنك الاطّلاع على الرسومات التوضيحية أعلاه. | الاقتصاص: بلا تغيير. المقياس: يجب تغيير الحجم بشكل مناسب وفقًا لذلك. |
GPano:fullPanoHeightPixels | عدد صحيح | نعم | لا تنطبق | الارتفاع الكامل الأصلي الذي تم اقتصاص الصورة منه في حال التقاط صورة بانورامية واحدة فقط، يحدّد هذا الارتفاع ارتفاع الصورة البانورامية الكاملة. ويمكنك الاطّلاع على الرسومات التوضيحية أعلاه. | الاقتصاص: بلا تغيير. المقياس: يجب تغيير الحجم بشكل مناسب وفقًا لذلك. |
GPano:Cropped AreaيسارPixels | عدد صحيح | نعم | لا تنطبق | العمود الذي تم اقتصاص الحافة اليسرى للصورة منه. ويمكنك الاطّلاع على الرسومات التوضيحية أعلاه. | الاقتصاص: إذا تم تغيير الاقتصاص الأيسر للصورة، يجب تعديل هذه القيمة. المقياس: يجب تغيير الحجم بشكل صحيح وفقًا لذلك. |
GPano:CroppedIsaTopPixels | عدد صحيح | نعم | لا تنطبق | صف تم اقتصاص الحافة العلوية من الصورة منه. ويمكنك الاطّلاع على الرسومات التوضيحية أعلاه. | الاقتصاص: إذا تم تغيير الجزء العلوي من الصورة، يجب تعديل هذه القيمة. المقياس: يجب تغيير الحجم بشكل مناسب وفقًا لذلك. |
GPano:حرف كاميرا الكاميرا الأوّلي | حقيقي | لا | 0 | تعمل هذه المعلمة الاختيارية على تحريك موضع الكاميرا الافتراضية على طول خط الرؤية، بعيدًا عن منتصف الصورة البانورامية. ويتم تمثيل موضع الجزء الخلفي من القيمة -1.0، بينما يتم تمثيل موضع السطح الأمامي بمقدار 1.0. وبالنسبة إلى العرض العادي، يجب إعداد هذه المعلمة على 0. | لا تنطبق |
مثال على صورة بانورامية كاملة
يمكن للمبرمِجين إضافة مثال على البيانات الوصفية أدناه إلى صورهم البانورامية الحالية على شكل صور بانورامية (360 درجة × 180 درجة) مع تعديلات صغيرة فقط. ويمكن إجراء ذلك في منتجات تعديل الصور، مثل Adobe Photoshop.
- تغيير أي مواضع ورود 4000 و2000 لمطابقة العرض والارتفاع المقابلين للصورة بوحدات البكسل
- تعديل PoseHeaderDegrees إذا كنت تريد أن تتمكّن "خرائط Google" من عرض صورة بانورامية 360 درجة، وإلا يمكنك إزالة هذه المعلّمة إذا أردت.
- تعديل المعلّمات الاختيارية أو إزالتها (كما هو موضّح أعلاه)
<rdf:Description rdf:about="" xmlns:GPano="http://ns.google.com/photos/1.0/panorama/"> <GPano:UsePanoramaViewer>True</GPano:UsePanoramaViewer> <GPano:CaptureSoftware>Photo Sphere</GPano:CaptureSoftware> <GPano:StitchingSoftware>Photo Sphere</GPano:StitchingSoftware> <GPano:ProjectionType>equirectangular</GPano:ProjectionType> <GPano:PoseHeadingDegrees>350.0</GPano:PoseHeadingDegrees> <GPano:InitialViewHeadingDegrees>90.0</GPano:InitialViewHeadingDegrees> <GPano:InitialViewPitchDegrees>0.0</GPano:InitialViewPitchDegrees> <GPano:InitialViewRollDegrees>0.0</GPano:InitialViewRollDegrees> <GPano:InitialHorizontalFOVDegrees>75.0</GPano:InitialHorizontalFOVDegrees> <GPano:CroppedAreaLeftPixels>0</GPano:CroppedAreaLeftPixels> <GPano:CroppedAreaTopPixels>0</GPano:CroppedAreaTopPixels> <GPano:CroppedAreaImageWidthPixels>4000</GPano:CroppedAreaImageWidthPixels> <GPano:CroppedAreaImageHeightPixels>2000</GPano:CroppedAreaImageHeightPixels> <GPano:FullPanoWidthPixels>4000</GPano:FullPanoWidthPixels> <GPano:FullPanoHeightPixels>2000</GPano:FullPanoHeightPixels> <GPano:FirstPhotoDate>2012-11-07T21:03:13.465Z</GPano:FirstPhotoDate> <GPano:LastPhotoDate>2012-11-07T21:04:10.897Z</GPano:LastPhotoDate> <GPano:SourcePhotosCount>50</GPano:SourcePhotosCount> <GPano:ExposureLockUsed>False</GPano:ExposureLockUsed> </rdf:Description>
مثال على صورة بانورامية جزئية
<rdf:Description rdf:about="" xmlns:GPano="http://ns.google.com/photos/1.0/panorama/"> <GPano:UsePanoramaViewer>True</GPano:UsePanoramaViewer> <GPano:CaptureSoftware>Photo Sphere</GPano:CaptureSoftware> <GPano:StitchingSoftware>Photo Sphere</GPano:StitchingSoftware> <GPano:ProjectionType>equirectangular</GPano:ProjectionType> <GPano:PoseHeadingDegrees>350.0</GPano:PoseHeadingDegrees> <GPano:InitialViewHeadingDegrees>90.0</GPano:InitialViewHeadingDegrees> <GPano:InitialViewPitchDegrees>0.0</GPano:InitialViewPitchDegrees> <GPano:InitialViewRollDegrees>0.0</GPano:InitialViewRollDegrees> <GPano:InitialHorizontalFOVDegrees>75.0</GPano:InitialHorizontalFOVDegrees> <GPano:CroppedAreaLeftPixels>90</GPano:CroppedAreaLeftPixels> <GPano:CroppedAreaTopPixels>128</GPano:CroppedAreaTopPixels> <GPano:CroppedAreaImageWidthPixels>2300</GPano:CroppedAreaImageWidthPixels> <GPano:CroppedAreaImageHeightPixels>1042</GPano:CroppedAreaImageHeightPixels> <GPano:FullPanoWidthPixels>4000</GPano:FullPanoWidthPixels> <GPano:FullPanoHeightPixels>2000</GPano:FullPanoHeightPixels> <GPano:FirstPhotoDate>2012-11-07T21:03:13.465Z</GPano:FirstPhotoDate> <GPano:LastPhotoDate>2012-11-07T21:04:10.897Z</GPano:LastPhotoDate> <GPano:SourcePhotosCount>50</GPano:SourcePhotosCount> <GPano:ExposureLockUsed>False</GPano:ExposureLockUsed> </rdf:Description>
قوة تعديل الصورة
لكي تكون البرامج فعّالة، يجب أن تتحقّق البرامج التي تعرض الصور البانورامية في المشاهد ما إذا كان قد تم تغيير حجم الصورة البانورامية الأصلية باستخدام التطبيق بدون تحديث البيانات الوصفية. ويمكن تنفيذ ذلك من خلال الخطوات التالية:
- التأكّد من أن علامة Cropped AreaImageWidthPixels تساوي عرض الصورة الفعلي
- التأكّد من أن علامة CroppedIsaImageHeightPixels مساوية لارتفاع الصورة الفعلي
- في حال تعذُّر تنفيذ الخطوة 1 أو 2، تحقَّق مما إذا تم الاحتفاظ بنسبة العرض إلى الارتفاع للصورة.
- إذا لم تنجح الخطوة 3، لا تعرض الصورة على هيئة صورة بانورامية حيث تم تحويلها بطريقة غير متوافقة ستؤدي إلى تشوّهات غير صحيحة.
- في حال اجتياز الخطوة 3، تكون نسبة العرض إلى الارتفاع متكافئة، ويجب تغيير جميع قيم العلامات المرتبطة التالية لتلائم حجم الصورة الجديد:
CroppedIsaImageWidthPixels, Cropped AreaImageHeightPixels, FullPanoWidthPixels, FullPanoHeightPixels, Cropped ArealeftPixels, Cropped ArearightPixels.
نظرة عامة على زوايا أويلر
يتم تحديد اتجاه الصورة البانورامية في الإطار العالمي من خلال زوايا أويلر. ويمكن تحديد زوايا الزوال بعدة طرق. ولكي يكون البرنامج صحيحًا، يجب أن يتّبع اصطلاحات زاوية "أويلر" الموضّحة هنا بدقة.
يحدّد الموضع فوق سطح الأرض إطارًا ثابتًا "محليًا"XYZ؛ حيث يكون الحرف Z قائمًا ومتوازيًا إلى سطح الأرض، وX صحيحًا للشرق، وY صحيحًا في الشمال. ويتم تحديد الاتجاه بالاستناد إلى هذا الإطار الثابت، وزوايا "أويلر" هي دوران حول محاور XYZ الثابتة. لذلك، لم يتم تعريف اتجاه الجرعة على الأعمدة. ويعني هذا أنّ صورة بانورامية 360 درجة بزاوية (0، 0، 0) سيتم توجيهها بحيث تكون بكسلات البكسل باتجاه الشمال باتجاه خط الاستواء المتوازية في صورة بانورامية موازية مع سطح الأرض.
توفّر زوايا "أويلر" عملية ربط من النقاط في (الإطار الذي تم تدويره) "صورة بانورامية 360 درجة" ونقاط إلى (الإطار الثابت) "الإطار المحلي":
يتم إنشاء مصفوفة دوران من زوايا Euler على النحو التالي (من المهم الحفاظ على هذا الترتيب):
R = R_Z(-header) * R_X(العرض التقديمي المخطّط) * R_Y(لفافة)
حيث: R_*(t) هو تدوير لليمين في المحور المُسمّى:
( ( ( ) ( ) ( ) ( ) ( ) ( لل(ل(أو لن
والمكان: Z = Up, X = East, Y = North.
ومن المهم الحفاظ على هذا الترتيب:
R = R_Z(-header) * R_X(العرض التقديمي المخطّط) * R_Y(لفافة)
حيث إنّ التدوير ليس سهلاً.
لاحِظ أن زاوية العنوان هي نفسها زاوية عنوان عادية.
المراجع
معيار Adobe XMP: http://www.adobe.com/devnet/xmp.html