الكاميرا والعرض

اختيار النظام الأساسي: Android iOS JavaScript

يمكن إمالة الخرائط في حزمة تطوير البرامج (SDK) لتطبيق "خرائط Google" لنظام التشغيل Android وتدويرها باستخدام حركات سهلة، ما يتيح للمستخدمين ضبط الخريطة بالاتجاه المناسب لهم. في أي مستوى تكبير/تصغير، يمكنك عرض الخريطة عرضًا شاملاً أو تغيير منظورها مع تأخّر بسيط جدًا في الاستجابة بفضل المساحة الصغيرة التي تشغلها شرائح الخريطة المستندة إلى المتجهات.

عيّنات تعليمات برمجية

يتضمّن مستودع ApiDemos على GitHub نموذجًا يشرح ميزات الكاميرا:

مقدمة

وكما هو الحال مع خرائط 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 هو موضع الخريطة الحالي. يتم عرض الخريطة الناتجة أسفلها.

لقطة شاشة لخريطة تم ضبط الكاميرا فيها على زاوية رؤية 0 درجة، وبمستوى تكبير 18
يتم عرض الخريطة بزاوية العرض التلقائية للكاميرا.
مخطّط بياني يعرض الموضع التلقائي للكاميرا مباشرةً فوق موضع الخريطة بزاوية 0 درجة
زاوية العرض التلقائية للكاميرا

في الصور أدناه، تكون زاوية العرض 45 درجة. يُرجى ملاحظة أنّ الكاميراMOVED تتحرك في منتصف قوس بين الاتجاه العلوي المباشر (0 درجة) والأرض (90 درجة)،MOVED إلى الموضع 3. لا تزال الكاميرا تشير إلى النقطة المركزية للخريطة، ولكن المنطقة الذي يتم تمثيله بالخط في الموضع 4 يظهر الآن.

لقطة شاشة لخريطة تم وضع كاميرا فيها بزاوية عرض 45 درجة، وبمستوى تكبير 18
يتم عرض الخريطة بزاوية عرض 45 درجة.
مخطّط بياني يعرض زاوية عرض الكاميرا مضبوطة على 45 درجة، مع ضبط مستوى التكبير على 18
زاوية عرض الكاميرا 45 درجة

لا تزال الخريطة في لقطة الشاشة هذه مركزة على نفس النقطة كما في الخريطة الأصلية، ولكن ظهرت المزيد من العناصر في أعلى الخريطة. عند زيادة الزاوية إلى أكثر من 45 درجة، تظهر العناصر بين الكاميرا وموضع التضاريس على التضاريس أكبر بشكلٍ نسبي، بينما تظهر العناصر التي تتجاوز موضع التضاريس أصغر بشكلٍ نسبي، ما ينتج عنه تأثير ثلاثي الأبعاد.

Zoom

يحدد مستوى تكبير/تصغير الكاميرا مقياس الخريطة. في تكبير/تصغير أكبر يمكن رؤية مزيد من التفاصيل بمستويات على الشاشة، بينما عند مستويات التكبير الأصغر مشاهدة المزيد من العالم على الشاشة. عند مستوى التكبير/التصغير 0، يكون مقياس الخريطة بحيث يكون عرض العالم بأكمله 256 بكسل مستقل الكثافة تقريبًا (وحدات بكسل مستقلة عن الكثافة)

تؤدي زيادة مستوى التكبير/التصغير بمقدار 1 إلى مضاعفة عرض العالم على الشاشة. وبالتالي عند مستوى التكبير/التصغير N، يكون عرض العالم تقريبًا 256 * 2N dp. على سبيل المثال، عند مستوى التكبير 2، يكون عرض العالم كله 1024dp تقريبًا.

ولا يلزم أن يكون مستوى التكبير أو التصغير عددًا صحيحًا. يعتمد نطاق مستويات التكبير/التصغير المسموح بها في الخريطة على عدد من العوامل، بما في ذلك الهدف ونوع الخريطة وحجم الشاشة. وسيتم تحويل أي رقم خارج النطاق إلى قيمة أقرب قيمة صالحة بعد ذلك، والتي يمكن أن تكون إما الحد الأدنى لمستوى التكبير أو الحد الأقصى لمستوى التكبير/التصغير. تعرض القائمة التالية المستوى التقريبي للتفاصيل التي يمكنك توقع رؤيتها في كل مستوى تكبير:

  • 1: العالم
  • 5: مساحة اليابسة/القارة
  • 10: المدينة
  • 15: الشوارع
  • 20: المباني
توضّح الصور التالية المظهر المرئي لمستويات التكبير/التصغير المختلفة:
لقطة شاشة لخريطة بمستوى تكبير 5
خريطة في مستوى التكبير 5
لقطة شاشة لخريطة بمستوى تكبير/تصغير يبلغ 15
خريطة بمستوى التكبير 15
لقطة شاشة لخريطة بمستوى التكبير 20
خريطة بمستوى التكبير 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);

      

يوضّح الرسم البياني التالي سيناريو عندما يكون هدف الكاميرا مقيدة بمنطقة أكبر بقليل من إطار العرض. يمكن للمستخدم التمرير السريع والتكبير/التصغير، شرط أن يظل هدف الكاميرا ضمن المنطقة المحدودة. يمثّل العلامة الصليب هدف الكاميرا:

مخطّط بياني يعرض حدود LatLng لكاميرا أكبر من
      مساحة العرض

تملأ الخريطة إطار العرض دائمًا، حتى إذا كان ذلك يؤدي إلى عرض مناطق خارج الحدود المحدّدة في إطار العرض. على سبيل المثال، إذا وضعت دالة الكاميرا المستهدفة في زاوية من المنطقة الحدود، فإن المنطقة خلف الزاوية مرئية في إطار العرض ولكن لا يمكن للمستخدمين التمرير إلى أبعد من ذلك في هذه المنطقة. تشير رسالة الأشكال البيانية يوضح الرسم التخطيطي التالي هذا السيناريو. يمثّل الصليب هدف الكاميرة:

مخطّط بياني يعرض استهداف الكاميرا في أسفل يسار
      حدود LatLng للكاميرا

في الرسم البياني التالي، حدود الكاميرا المستهدفة ذات حدود شديدة، وتقدم للمستخدم فرصة ضئيلة جدًا للتمرير أو تحريك الخريطة. الصليب يمثل هدف الكاميرا:

مخطّط بياني يعرض حدود LatLng لكاميرا أصغر من
      مساحة العرض

جارٍ تعديل شاشة الكاميرا

لتطبيق 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));