يمكن إمالة الخرائط في حزمة تطوير البرامج (SDK) لتطبيق "خرائط Google" لنظام التشغيل Android وتدويرها باستخدام حركات سهلة، ما يتيح للمستخدمين ضبط الخريطة بالاتجاه المناسب لهم. في أي مستوى تكبير/تصغير، يمكنك عرض الخريطة عرضًا شاملاً أو تغيير منظورها مع تأخّر بسيط جدًا في الاستجابة بفضل المساحة الصغيرة التي تشغلها شرائح الخريطة المستندة إلى المتجهات.
عيّنات تعليمات برمجية
يتضمّن مستودع ApiDemos على GitHub نموذجًا يشرح ميزات الكاميرا:
- cameraDemoActivity - Kotlin: تغيير موضع الكاميرا
- CameraDemoActivity - Java: تغيير موضع الكاميرا
مقدمة
وكما هو الحال مع خرائط Google على الويب، تمثل حزمة SDK لخرائط Google لنظام التشغيل Android سطح العالم (كرة كروية) على شاشة جهازك (مستوى مسطّح) إسقاط Mercator: في الاتجاه الشرقي والغربي، تضع الخريطة تتكرر إلى ما لا نهاية مع التفاف العالم حول نفسه بسلاسة. في اتجاهي الشمال والجنوب، تقتصر الخريطة على 85 درجة شمالًا و85 درجة جنوبًا تقريبًا.
ملاحظة: يتميز إسقاط Mercator بعرض محدود على طول خط الطول ولكن بارتفاع غير محدود على خطوط العرض. "نقطع" خريطة أساسية باستخدام إسقاط ماركاتور بحوالي +/- 85 درجة لجعل شكل الخريطة الناتج مربعًا، مما يسمح منطقًا أسهل للمربع التحديد.
تسمح لك حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات Android بتغيير وجهة نظر المستخدم عن طريق تعديل كاميرا الخريطة.
ولن تؤدي التغييرات التي يتم إجراؤها على الكاميرا إلى إجراء أي تغييرات على العلامات أو التراكبات أو الرسومات التي أضفتها، ولكنك قد تحتاج إلى تغيير الإضافات لتلائم أفضل مع طريقة العرض الجديدة.
وبما أنّه يمكنك الاستماع إلى إيماءات المستخدمين على الخريطة، يمكنك تغيير الخريطة في
استجابة لطلبات المستخدمين. على سبيل المثال، تستجيب طريقة طلب معاودة الاتصال
OnMapClickListener.onMapClick()
للنقر مرة واحدة على الخريطة. وبما أنّ الطريقة تتلقّى خطَّي الطول والعرض
للموقع الجغرافي الذي تم النقر عليه، يمكنك الردّ من خلال التمرير أو التصغير أو التكبير إلى تلك النقطة.
تتوفر طرق مشابهة للاستجابة للنقرات على فقاعة محدد الموقع أو
للاستجابة لإيماءة السحب على علامة.
يمكنك أيضًا الاستماع إلى حركات الكاميرا، بحيث يتلقّى تطبيقك إعلامًا عند بدء تحرك الكاميرا أو تحركها حاليًا أو توقُّف حركتها. لمعرفة التفاصيل، يُرجى الاطّلاع على دليل أحداث تغيير الكاميرا.
موضع الكاميرا
يتم تصميم عرض الخريطة على أنه كاميرا تنظر لأسفل على مستوٍ مسطّح. الوظيفة الكاميرا (وبالتالي عرض الخريطة) يتم تحديدها من خلال السمات التالية: target (الموقع الجغرافي لخط العرض/خط الطول): محمل، إمالة، وتكبير/تصغير.
الهدف (الموقع)
هدف الكاميرا هو الموقع الجغرافي لمركز الخريطة، ويتم تحديده على أنّه إحداثيات خط العرض وخط الطول.
يمكن أن يتراوح خط العرض بين -85 و85 درجة. سيتم تقريب القيم التي تزيد عن أو تقل عن هذا النطاق إلى أقرب قيمة ضمن هذا النطاق. على سبيل المثال، سيؤدي تحديد خط عرض 100 إلى ضبط القيمة على 85. يتراوح خط الطول بين -180 و180 درجة، شاملاً. القيم أعلى أو أسفل هذه القيمة النطاق بحيث يقع ضمن النطاق (-180، 180). بالنسبة على سبيل المثال، 480 و840 و1200 سيتم التفافها جميعًا إلى 120 درجة.الاتجاه
تحدّد موجِّه الكاميرا اتجاه البوصلة، الذي يتم قياسه بالدرجات من الشمال الحقيقي، ويتجاوب إلى الحافة العلوية من الخريطة. إذا رسمت خطًا رأسيًا من وسط الخريطة إلى الحافة العلوية من الخريطة، يتجاوب الاتجاه مع عنوان الكاميرا (بالدرجات) نسبيًا إلى الشمال الحقيقي.
يعني الاتجاه 0 أنّ أعلى الخريطة يشير إلى الشمال الحقيقي. تعني قيمة الاتجاه 90 أنّ أعلى الخريطة يشير إلى الشرق (90 درجة على البوصلة). قيمة 180 يعني الجزء العلوي من نقاط الخريطة بسبب الجنوب.
تتيح لك واجهة برمجة تطبيقات الخرائط تغيير اتجاه الخريطة. على سبيل المثال، غالبًا ما يدير سائق السيارة خريطة الطرق لمحاذاة اتجاه التنقّل، في حين يوجّه عادةً المتنزّهون الذين يستخدمون الخريطة وال بوصلة الخريطة بحيث يشير الخط العمودي إلى الشمال.
الإمالة (زاوية العرض)
تحدد الإمالة موضع الكاميرا على قوس فوق موضع الخريطة مباشرةً الموضع المركزي، ويتم قياسه بالدرجات من النظير (الاتجاه الذي يشير إلى أسفل الكاميرا مباشرةً). تشير القيمة 0 إلى كاميرا موجَّهة بشكل مباشر للأسفل. تشير القيم الأكبر من 0 إلى كاميرا تم توجيهها نحو الأفق بدرجة عمودية تبلغ العدد المحدّد من الدرجات. عند تغيير زاوية العرض، تظهر الخريطة بتأثير المنظور، مع ظهور العناصر البعيدة بحجم أصغر والعناصر القريبة بحجم أكبر. ما يلي: والرسوم التوضيحية توضح ذلك.
في الصور أدناه، تكون زاوية العرض 0 درجة. تعرض الصورة الأولى المخطط له؛ الموضع 1 هو موضع الكاميرا والموضع 2 هو موضع الخريطة الحالي. يتم عرض الخريطة الناتجة أسفلها.
في الصور أدناه، تكون زاوية العرض 45 درجة. يُرجى ملاحظة أنّ الكاميراMOVED تتحرك في منتصف قوس بين الاتجاه العلوي المباشر (0 درجة) والأرض (90 درجة)،MOVED إلى الموضع 3. لا تزال الكاميرا تشير إلى النقطة المركزية للخريطة، ولكن المنطقة الذي يتم تمثيله بالخط في الموضع 4 يظهر الآن.
لا تزال الخريطة في لقطة الشاشة هذه مركزة على نفس النقطة كما في الخريطة الأصلية، ولكن ظهرت المزيد من العناصر في أعلى الخريطة. عند زيادة الزاوية إلى أكثر من 45 درجة، تظهر العناصر بين الكاميرا وموضع التضاريس على التضاريس أكبر بشكلٍ نسبي، بينما تظهر العناصر التي تتجاوز موضع التضاريس أصغر بشكلٍ نسبي، ما ينتج عنه تأثير ثلاثي الأبعاد.
Zoom
يحدد مستوى تكبير/تصغير الكاميرا مقياس الخريطة. في تكبير/تصغير أكبر يمكن رؤية مزيد من التفاصيل بمستويات على الشاشة، بينما عند مستويات التكبير الأصغر مشاهدة المزيد من العالم على الشاشة. عند مستوى التكبير/التصغير 0، يكون مقياس الخريطة بحيث يكون عرض العالم بأكمله 256 بكسل مستقل الكثافة تقريبًا (وحدات بكسل مستقلة عن الكثافة)
تؤدي زيادة مستوى التكبير/التصغير بمقدار 1 إلى مضاعفة عرض العالم على الشاشة. وبالتالي عند مستوى التكبير/التصغير N، يكون عرض العالم تقريبًا 256 * 2N dp. على سبيل المثال، عند مستوى التكبير 2، يكون عرض العالم كله 1024dp تقريبًا.
ولا يلزم أن يكون مستوى التكبير أو التصغير عددًا صحيحًا. يعتمد نطاق مستويات التكبير/التصغير المسموح بها في الخريطة على عدد من العوامل، بما في ذلك الهدف ونوع الخريطة وحجم الشاشة. وسيتم تحويل أي رقم خارج النطاق إلى قيمة أقرب قيمة صالحة بعد ذلك، والتي يمكن أن تكون إما الحد الأدنى لمستوى التكبير أو الحد الأقصى لمستوى التكبير/التصغير. تعرض القائمة التالية المستوى التقريبي للتفاصيل التي يمكنك توقع رؤيتها في كل مستوى تكبير:
- 1: العالم
- 5: مساحة اليابسة/القارة
- 10: المدينة
- 15: الشوارع
- 20: المباني
تحريك الكاميرا
تتيح لك Maps API تغيير جزء العالم الذي يظهر على الخريطة. ويتم ذلك من خلال تغيير موضع الكاميرا (بدلاً من تحريك الخريطة).
عند تغيير الكاميرا، يتوفر لك خيار إضافة حركة للفيديو الناتج وحركة الكاميرا. يُظهر المقطع المتحركة تداخلًا بين سمات الكاميرا الحالية وسمات الكاميرا الجديدة. يمكنك أيضًا التحكم في ومدة الرسوم المتحركة.
لتغيير موضع الكاميرا، عليك تحديد المكان الذي تريد فيه
نقل الكاميرا، باستخدام CameraUpdate
. تتيح لك واجهة برمجة التطبيقات Maps API
إنشاء العديد من الأنواع المختلفة من CameraUpdate
باستخدام
CameraUpdateFactory
. تتوفّر الخيارات التالية:
تغيير مستوى التكبير أو التصغير وضبط الحد الأدنى/الحد الأقصى للتكبير أو التصغير
CameraUpdateFactory.zoomIn()
و
CameraUpdateFactory.zoomOut()
تمنحك CameraUpdate
تغير مستوى التكبير بمقدار 1.0 مع الاحتفاظ
جميع الخصائص الأخرى متطابقة.
CameraUpdateFactory.zoomTo(float)
يمنحك CameraUpdate
الذي يغيّر مستوى التكبير إلى القيمة المحدّدة،
مع إبقاء جميع السمات الأخرى كما هي.
CameraUpdateFactory.zoomBy(float)
أو
CameraUpdateFactory.zoomBy(float, Point)
تمنحك CameraUpdate
تزيد (أو تنخفض، إذا كانت القيمة)
سالب) مستوى التكبير/التصغير في القيمة المحددة. ويُثبِّت هذا الخيار النقطة المحدّدة
على الشاشة بحيث تبقى في الموقع الجغرافي نفسه (خط الطول/خط العرض)
، وبالتالي قد يغيّر موقع الكاميرا لتحقيق ذلك.
قد تجد أنه من المفيد تعيين حد أدنى و/أو أقصى مستوى مفضل للتكبير. على سبيل المثال، يكون ذلك مفيدًا للتحكّم في تجربة المستخدم إذا كان تطبيقك يعرض منطقة محدّدة حول نقطة اهتمام، أو إذا كنت تستخدم شاشة ملف شخصي مخصّصة متراكبة مع مجموعة محدودة من مستويات التكبير/التصغير.
Kotlin
private lateinit var map: GoogleMap map.setMinZoomPreference(6.0f) map.setMaxZoomPreference(14.0f)
Java
private GoogleMap map; map.setMinZoomPreference(6.0f); map.setMaxZoomPreference(14.0f);
يُرجى العِلم أنّ هناك اعتبارات فنية قد تمنع واجهة برمجة التطبيقات من السماح للمستخدمين بالتكبير/التصغير بمعدل منخفض جدًا أو مرتفع جدًا. مثلاً، القمر الصناعي أو التضاريس قد يكون الحد الأقصى للتكبير/التصغير أقل من مربعات الخرائط الأساسية.
تغيير موضع الكاميرا
هناك طريقتان سهلتان لإجراء التغييرات الشائعة في المواقف.
CameraUpdateFactory.newLatLng(LatLng)
CameraUpdate
الذي يغيّر خط العرض وخط الطول للكاميرا،
مع الحفاظ على جميع المواقع الأخرى.
CameraUpdateFactory.newLatLngZoom(LatLng, float)
يمنحك رمز CameraUpdate
الذي يغيّر صورة الكاميرا
خطوط الطول والعرض والتكبير/التصغير، مع الحفاظ على جميع الخصائص الأخرى.
للحصول على مرونة كاملة في تغيير موضع الكاميرا، استخدِم رمز
CameraUpdateFactory.newCameraPosition(CameraPosition)
الذي يمنحك رمز CameraUpdate
ينقل الكاميرا إلى
الموضع المحدَّد. يمكن الحصول على CameraPosition
مباشرةً باستخدام
new CameraPosition()
أو باستخدام CameraPosition.Builder
باستخدام
new CameraPosition.Builder()
.
التحريك (التمرير)
CameraUpdateFactory.scrollBy(float, float)
يمنحك CameraUpdate
الذي
يغيّر خطي الطول والعرض للكاميرا بحيث تتحرك الخريطة بعدد معين من بكسل. تؤدي قيمة x الموجبة إلى تحرك الكاميرا إلى
اليمين، بحيث يبدو أن الخريطة قد تم نقلها إلى اليسار. A موجب y
إلى تحريك الكاميرا لأسفل، بحيث يبدو أن الخريطة قد تحركت
لأعلى. في المقابل، تؤدي قيم x السالبة إلى تحريك الكاميرا لليسار، بحيث
يبدو أنّ الخريطة قد تحرّكت يمينًا، وتؤدي قيم y السالبة إلى
تحريك الكاميرا للأعلى. يتم التمرير وفقًا لاتجاه الكاميرا الحالي. على سبيل المثال، إذا كان اتجاه الكاميرا 90 درجة، عندها اتجاه الشرق
هي "أعلى".
وضع الحدود
تعيين حدود الخريطة
من المفيد أحيانًا نقل
الكاميرا بحيث تكون المنطقة محط الاهتمام مرئية بأقصى قدر ممكن
مستوى التكبير/التصغير. فعلى سبيل المثال، إذا كنت تعرض جميع محطات الوقود في
خمسة أميال من الموضع الحالي للمستخدم، فقد ترغب في تحريك الكاميرا مثل
من أن تكون جميعها مرئية على الشاشة. لإجراء ذلك، عليك أولاً احتساب
LatLngBounds
التي تريد أن تظهر على الشاشة. يمكنك
بعد ذلك استخدام CameraUpdateFactory.newLatLngBounds(LatLngBounds bounds, int
padding)
للحصول على CameraUpdate
يغيّر
موضع الكاميرا بحيث يتلاءم LatLngBounds
المحدَّد بالكامل مع الخريطة، مع مراعاة
المسافة البادئة (بالبكسل) المحدّدة. يضمن العنصر CameraUpdate
المعروض أن تكون الفجوة (بالبكسل) بين الحدود المحدّدة وحدود
الخريطة مساوية على الأقل للتباعد المحدّد. لاحظ أن الإمالة
اتجاه الخريطة ستكون 0.
Kotlin
val australiaBounds = LatLngBounds( LatLng((-44.0), 113.0), // SW bounds LatLng((-10.0), 154.0) // NE bounds ) map.moveCamera(CameraUpdateFactory.newLatLngBounds(australiaBounds, 0))
Java
LatLngBounds australiaBounds = new LatLngBounds( new LatLng(-44, 113), // SW bounds new LatLng(-10, 154) // NE bounds ); map.moveCamera(CameraUpdateFactory.newLatLngBounds(australiaBounds, 0));
توسيط الخريطة داخل منطقة
في بعض الحالات، قد تحتاج إلى وضع الكاميرا في منتصف حدود بدلاً من
تضمين الحدود القصوى. على سبيل المثال، لضبط منتصف الكاميرا على أحد البلدان
مع الحفاظ على تكبير/تصغير مستمر. في هذه الحالة، يمكنك استخدام طريقة مماثلة،
من خلال إنشاء LatLngBounds
واستخدام
CameraUpdateFactory.newLatLngZoom(LatLng latLng, float zoom)
مع
LatLngBounds
طريقة getCenter()
. ستعرض طريقة getCenter()
المركز الجغرافي لـ LatLngBounds
Kotlin
val australiaBounds = LatLngBounds( LatLng((-44.0), 113.0), // SW bounds LatLng((-10.0), 154.0) // NE bounds ) map.moveCamera(CameraUpdateFactory.newLatLngZoom(australiaBounds.center, 10f))
Java
LatLngBounds australiaBounds = new LatLngBounds( new LatLng(-44, 113), // SW bounds new LatLng(-10, 154) // NE bounds ); map.moveCamera(CameraUpdateFactory.newLatLngZoom(australiaBounds.getCenter(), 10));
تتيح لك طريقة newLatLngBounds(boundary, width, height,
padding)
تحديد عرض وارتفاع مستطيل بالبكسل، وذلك بهدف أن تتطابق مع أبعاد الخارطة. يتم وضع المستطيل بحيث يكون مركزه مطابقًا لمركز
عرض الخريطة (بحيث إذا كانت الأبعاد المحدّدة مطابقة لتلك الخاصة
بعرض الخريطة، يتطابق المستطيل مع عرض الخريطة). تشير رسالة الأشكال البيانية
الذي تم إرجاعه: سيعمل CameraUpdate
على تحريك الكاميرا بحيث
يظهر LatLngBounds
في وسط الشاشة داخل المستطيل المحدد في
أكبر مستوى ممكن من التكبير، مع الأخذ في الاعتبار المساحة المتروكة المطلوبة.
ملاحظة: استخدِم الطريقة الأكثر بساطة فقط.
newLatLngBounds(boundary, padding)
لإنشاء CameraUpdate
إذا كانت ستُستخدم لنقل
الكاميرا بعد أن خضعت الخريطة لتخطيط. أثناء التنسيق، تعمل واجهة برمجة التطبيقات
على احتساب حدود عرض الخريطة اللازمة لمشروع
مربّع الحدود بشكل صحيح. في المقابل، يمكنك استخدام القيمة
CameraUpdate
التي تعرضها الطريقة الأكثر تعقيدًا
newLatLngBounds(boundary, width, height, padding)
في أي وقت، حتى قبل أن تخضع الخريطة للتنسيق، لأنّ واجهة برمجة التطبيقات
تحتسب حدود العرض من الوسيطات التي ترسلها.
حصر إمكانية تمرير المستخدم للصورة في منطقة معيّنة
في السيناريوهات أعلاه، يمكنك ضبط حدود الخريطة، ولكن يمكن للمستخدم التمرير أو التمرير السريع خارج هذه الحدود. بدلاً من ذلك، يمكنك تقييد حدود مركز خطي الطول والعرض للنقطة المحورية للخريطة (هدف الكاميرا) لكي يتمكّن المستخدمون من الانتقال والتكبير/التصغير ضمن هذه الحدود فقط. على سبيل المثال، قد يريد تطبيق للبيع بالتجزئة في مركز تسوّق أو مطار تقييد الخريطة بحدود معيّنة، ما يسمح للمستخدمين بالتمرير والتنقّل ضمن هذه الحدود.
Kotlin
// Create a LatLngBounds that includes the city of Adelaide in Australia. val adelaideBounds = LatLngBounds( LatLng(-35.0, 138.58), // SW bounds LatLng(-34.9, 138.61) // NE bounds ) // Constrain the camera target to the Adelaide bounds. map.setLatLngBoundsForCameraTarget(adelaideBounds)
Java
// Create a LatLngBounds that includes the city of Adelaide in Australia. LatLngBounds adelaideBounds = new LatLngBounds( new LatLng(-35.0, 138.58), // SW bounds new LatLng(-34.9, 138.61) // NE bounds ); // Constrain the camera target to the Adelaide bounds. map.setLatLngBoundsForCameraTarget(adelaideBounds);
يوضّح الرسم البياني التالي سيناريو عندما يكون هدف الكاميرا مقيدة بمنطقة أكبر بقليل من إطار العرض. يمكن للمستخدم التمرير السريع والتكبير/التصغير، شرط أن يظل هدف الكاميرا ضمن المنطقة المحدودة. يمثّل العلامة الصليب هدف الكاميرا:
تملأ الخريطة إطار العرض دائمًا، حتى إذا كان ذلك يؤدي إلى عرض مناطق خارج الحدود المحدّدة في إطار العرض. على سبيل المثال، إذا وضعت دالة الكاميرا المستهدفة في زاوية من المنطقة الحدود، فإن المنطقة خلف الزاوية مرئية في إطار العرض ولكن لا يمكن للمستخدمين التمرير إلى أبعد من ذلك في هذه المنطقة. تشير رسالة الأشكال البيانية يوضح الرسم التخطيطي التالي هذا السيناريو. يمثّل الصليب هدف الكاميرة:
في الرسم البياني التالي، حدود الكاميرا المستهدفة ذات حدود شديدة، وتقدم للمستخدم فرصة ضئيلة جدًا للتمرير أو تحريك الخريطة. الصليب يمثل هدف الكاميرا:
جارٍ تعديل شاشة الكاميرا
لتطبيق CameraUpdate
على الخريطة، يمكنك نقل
الكاميرا بشكل فوري أو تحريك الكاميرا بسلاسة. لنقل الكاميرا
على الفور باستخدام CameraUpdate
المحدَّد، يمكنك الاتصال برقم
GoogleMap.moveCamera(CameraUpdate)
.
يمكنك جعل تجربة المستخدم أكثر إرضاءً، خاصة مع الحركات القصيرة،
من خلال تحريك التغيير. لإجراء ذلك بدلاً من الاتصال بالرقم
GoogleMap.moveCamera
، اتصل بالرقم
GoogleMap.animateCamera
.
سيتم نقل الخريطة بسلاسة إلى السمات الجديدة. يقدّم النموذج الأكثر تفصيلاً لهذه الطريقة، وهو
GoogleMap.animateCamera(cameraUpdate, duration, callback)
،
ثلاث وسيطات:
cameraUpdate
CameraUpdate
توضيح مكان تحريك الكاميراcallback
- عنصر ينفِّذ
GoogleMap.CancellableCallback
تحدد هذه الواجهة العامة للتعامل مع المهام طريقتين "onCancel() " و"onFinished() " بالنسبة إلى الرسوم المتحركة، يتم استدعاء الطرق الظروف التالية:onFinish()
- يتم استدعاؤه في حال انتهاء الصورة المتحركة بدون انقطاع.
onCancel()
-
يتمّ استدعاؤه إذا تمّ إيقاف الحركة من خلال استدعاء
stopAnimation()
أو بدء حركة جديدة للكاميرا.بدلاً من ذلك، يمكن أن يحدث ذلك أيضًا إذا اتصلت بالرقم
GoogleMap.stopAnimation()
.
duration
- المدة المطلوبة للحركة بالمللي ثانية، كـ
int
توضح مقتطفات الرمز التالية بعض الطرق الشائعة لنقل والكاميرا.
Kotlin
val sydney = LatLng(-33.88, 151.21) val mountainView = LatLng(37.4, -122.1) // Move the camera instantly to Sydney with a zoom of 15. map.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney, 15f)) // Zoom in, animating the camera. map.animateCamera(CameraUpdateFactory.zoomIn()) // Zoom out to zoom level 10, animating with a duration of 2 seconds. map.animateCamera(CameraUpdateFactory.zoomTo(10f), 2000, null) // Construct a CameraPosition focusing on Mountain View and animate the camera to that position. val cameraPosition = CameraPosition.Builder() .target(mountainView) // Sets the center of the map to Mountain View .zoom(17f) // Sets the zoom .bearing(90f) // Sets the orientation of the camera to east .tilt(30f) // Sets the tilt of the camera to 30 degrees .build() // Creates a CameraPosition from the builder map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition))
Java
LatLng sydney = new LatLng(-33.88,151.21); LatLng mountainView = new LatLng(37.4, -122.1); // Move the camera instantly to Sydney with a zoom of 15. map.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney, 15)); // Zoom in, animating the camera. map.animateCamera(CameraUpdateFactory.zoomIn()); // Zoom out to zoom level 10, animating with a duration of 2 seconds. map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null); // Construct a CameraPosition focusing on Mountain View and animate the camera to that position. CameraPosition cameraPosition = new CameraPosition.Builder() .target(mountainView ) // Sets the center of the map to Mountain View .zoom(17) // Sets the zoom .bearing(90) // Sets the orientation of the camera to east .tilt(30) // Sets the tilt of the camera to 30 degrees .build(); // Creates a CameraPosition from the builder map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));