يمكن للمستخدمين التحكّم في التكبير أو التصغير والإمالة والموضع والتدوير للكاميرا باستخدام الإيماءات على الخريطة. يمكنك أيضًا ضبط الكاميرا آليًا.

موضع الكاميرا
يتم تصميم عرض الخريطة ككاميرا تنظر إلى نقطة معيّنة في الفضاء. يتم تحديد موضع الكاميرا واتجاهها من خلال إحداثيات خطوط العرض/خطوط الطول/الارتفاع (المحددة على أنها "المركز"، حيث تشير الكاميرا)، والاتجاه، والإمالة، والنطاق، والتدوير.
المركز (خط العرض، خط الطول، الارتفاع)
يحدّد المركز النقطة المحدّدة في المساحة الثلاثية الأبعاد التي ترصدها الكاميرا. يتم تحديد ذلك باستخدام الفئة LatLngAltitude التي تجمع بين قيم خط العرض وخط الطول والارتفاع. يتيح لك ذلك تحديد موضع نقطة تركيز الكاميرا في ثلاثة أبعاد.
يمكن أن يتراوح خط العرض بين -90 و90 درجة، بما في ذلك هذين الرقمين. يتراوح خط الطول بين -180 و180 درجة، شاملة. يتم تحديد الارتفاع بالأمتار،
ويتم تحديد كيفية تفسير الارتفاع من خلال
altitudeMode
للكاميرا
(AltitudeMode.ABSOLUTE
تلقائيًا،
أو AltitudeMode.RELATIVE_TO_GROUND،
أو
AltitudeMode.RELATIVE_TO_MESH).
العنوان
يحدّد الاتجاه اتجاه البوصلة على الخريطة، ويتم قياسه بالدرجات في اتجاه عقارب الساعة من الشمال الحقيقي. يشير الشمال إلى 0 درجة، والشرق إلى 90 درجة، والجنوب إلى 180 درجة، والغرب إلى 270 درجة.
الإمالة
تحدّد الإمالة زاوية الكاميرا بالنسبة إلى المحور العمودي، ويتم قياسها بالدرجات. تعني الإمالة بمقدار 0 درجة أنّ الكاميرا موجّهة مباشرةً نحو الأرض ( السمت). وتعني الإمالة بمقدار 90 درجة أنّ الكاميرا موجّهة أفقيًا في الاتجاه المحدّد من خلال الاتجاه.
النطاق
يحدّد النطاق المسافة بالأمتار بين موضع الكاميرا ومركز الخريطة. يمكن أن يتراوح النطاق من صفر متر (قريب جدًا) إلى ثلاثة وستين مليون متر، مما يسمح بالمشاهدة من مسافة قريبة جدًا وصولاً إلى منظور عالمي حقيقي. يتحكم هذا بشكل فعال في كيفية ظهور الخريطة "مكبرة" أو "مصغرة".
الدوران
يحدّد التمايل زاوية الكاميرا بالنسبة إلى الأفق، ويتم قياسه بالدرجات. يمكن استخدام هذه المَعلمة لإنشاء تأثيرات مثل الميلان أثناء محاكاة الطيران أو حتى الدوران الكامل، من خلال تدوير الكاميرا حول محور الرؤية.
التحكّم في الكاميرا
توضّح عينة التعليمات البرمجية التالية كيفية التحكّم فيCamera
برمجيًا من خلال استدعاء الإجراء
setCamera
على
GoogleMap3D.
لاستخدام عينة التعليمات البرمجية هذه، اتّبِع التعليمات الواردة في
الإعداد وإضافة خريطة ثلاثية الأبعاد إلى
تطبيقك لإعداد
مشروعك على استوديو Android باستخدام خريطة ثلاثية الأبعاد أساسية. بعد ذلك، أضِف الرمز التالي إلى ملف
MainActivity.kt:
// Add imports
import com.google.android.gms.maps3d.model.Map3DMode
import com.google.android.gms.maps3d.model.camera
import com.google.android.gms.maps3d.model.latLngAltitude
// Add to the onMap3DViewReady method, after the googleMap3D object has been initialized
googleMap3D.setMapMode(Map3DMode.HYBRID)
googleMap3D.setCamera(
camera {
center = latLngAltitude {
latitude = 38.743502
longitude = -109.499374
altitude = 1467.0
}
heading = 350.0
tilt = 58.1
range = 138.2
roll = 0.0
}
)
عناصر التحكّم في واجهة المستخدم
بالإضافة إلى الإيماءات العادية، توفّر حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" الثلاثية الأبعاد لأجهزة Android أيضًا عناصر تحكّم في واجهة المستخدم لتغيير موضع الكاميرا.
- يعرض عنصر التحكّم في التكبير/التصغير الزرَّين "+" و "-" لتغيير مستوى التكبير/التصغير في الخريطة.
- يعرض عنصر التحكّم في النقل الأزرار "←" و"→" و"↑" و "↓" لتغيير مركز الخريطة.
- تعرض عناصر التحكّم في التدوير الرمزَين "↺" و"↻" لتغيير اتجاه الكاميرا.
- يعرض عنصر التحكّم في الإمالة الرمزين "^" و"⌄" لتغيير إمالة الكاميرا.
- يشير عنصر التحكّم في البوصلة إلى اتجاه الشمال في البوصلة، ويسمح بإعادة ضبط الكاميرا على اتجاه الشمال.
توضّح عيّنة التعليمات البرمجية التالية كيفية تغيير مستوى ظهور عناصر التحكّم في واجهة المستخدم:
```kotlin // Add imports import com.google.android.gms.maps3d.UiControlSettings import com.google.android.gms.maps3d.model.CompassControl import com.google.android.gms.maps3d.model.TiltControl import com.google.android.gms.maps3d.model.ZoomControl</p> <p>...</p> <p>val uiControlSettings = googleMap3D.getUiControlSettings()</p> <p>// Show UI controls on the trailing edge of the map uiControlSettings?.setUiControlsPlacement( listOf(CompassControl(), ZoomControl(), TiltControl()), UiControlSettings.ControlPlacement.TRAILING )</p> <p>// Hide UI controls on the trailing edge of the map uiControlSettings?.setUiControlsPlacement( emptyList(), UiControlSettings.ControlPlacement.TRAILING )