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

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

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

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

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

مقدمة

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

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

تتيح لك حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات Android تغيير طريقة عرض الخريطة للمستخدم عن طريق تعديل كاميرا الخريطة.

لن تؤدي التغييرات في الكاميرا إلى إجراء أي تغييرات على العلامات أو التراكبات أو الرسومات الأخرى التي أضفتها، ولكنك قد تحتاج إلى تغيير الإضافات لتلائم العرض الجديد بشكل أفضل.

ولأنّه يمكنك الاستماع إلى إيماءات المستخدم على الخريطة، يمكنك تغيير الخريطة استجابةً لطلبات المستخدمين. على سبيل المثال، تستجيب طريقة معاودة الاتصال OnMapClickListener.onMapClick() لنقرة واحدة على الخريطة. نظرًا لأن الطريقة تتلقى خط العرض وخط الطول لموقع النقر، يمكنك الاستجابة عن طريق العرض الشامل أو التكبير/التصغير حتى تلك النقطة. تتوفر طرق مماثلة للاستجابة للنقرات على فقاعة العلامة أو للاستجابة لإيماءة سحب على محدد الموقع.

يمكنك أيضًا الاستماع إلى حركات الكاميرا لكي يتلقّى تطبيقك إشعارًا عندما تبدأ الكاميرا في التحرك أو عندما تتحرك حاليًا أو تتوقف عن الحركة. للحصول على التفاصيل، يُرجى الاطّلاع على دليل أحداث تغيير الكاميرا.

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

تم تصميم عرض الخريطة على شكل كاميرا تنظر للأسفل على سطح مستوٍ. يتم تحديد موضع الكاميرا (وبالتالي عرض الخريطة) من خلال السمات التالية: الاستهداف (موقع خط العرض/خط الطول) والاتجاه والإمالة وتكبير/تصغير.

الرسم التوضيحي لخصائص الكاميرا

الاستهداف (الموقع الجغرافي)

هدف الكاميرا هو موقع مركز الخريطة، المحدد كإحداثيات خطوط الطول والعرض.

يمكن أن يتراوح خط العرض بين -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 درجة. لاحِظ أنّ الكاميرا تتحرك في منتصف قوس بين رأسَين مستقيمَين (0 درجة) والأرض (90 درجة)، في الموضع 3. لا تزال الكاميرا تشير إلى النقطة المركزية للخريطة، ولكن يمكن الآن رؤية المنطقة التي يمثّلها الخط في الموضع 4.

لقطة شاشة لخريطة وكاميرا موضوعة بزاوية عرض 45 درجة، بمستوى تكبير / تصغير يبلغ 18.
يتم عرض الخريطة بزاوية عرض تبلغ 45 درجة.
مخطّط بياني يوضّح زاوية عرض الكاميرا مضبوطة على 45 درجة، مع ضبط مستوى التكبير/التصغير على 18.
زاوية رؤية للكاميرا تبلغ 45 درجة.

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

Zoom

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

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

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

  • 1: العالم
  • 5: اليابسة/القارة
  • 10: المدينة
  • 15: الشوارع
  • 20: المباني
تعرض الصور التالية المظهر المرئي لمستويات التكبير المختلفة:
لقطة شاشة للخريطة بمستوى تكبير / تصغير يبلغ 5
خريطة في مستوى التكبير/التصغير 5.
لقطة شاشة للخريطة بمستوى تكبير / تصغير يبلغ 15
خريطة في مستوى التكبير/التصغير 15.
لقطة شاشة للخريطة في مستوى التكبير/التصغير 20
خريطة في مستوى التكبير/التصغير 20.

تحريك الكاميرا

تسمح لك واجهة برمجة تطبيقات الخرائط بتغيير جزء العالم الذي يمكن رؤيته على الخريطة. ويتم تحقيق ذلك عن طريق تغيير موضع الكاميرا (بدلاً من تحريك الخريطة).

عند تغيير الكاميرا، يتوفر لك خيار تحريك حركة الكاميرا الناتجة. وتتداخل الصورة المتحركة بين سمات الكاميرا الحالية وسمات الكاميرا الجديدة. يمكنك أيضًا التحكم في مدة الرسوم المتحركة.

لتغيير موضع الكاميرا، عليك تحديد المكان الذي تريد نقل الكاميرا إليه باستخدام 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 الموجبة إلى تحرك الكاميرا إلى اليمين، بحيث تبدو الخريطة قد تحركت إلى اليسار. وتجعل القيمة 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);

      

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

رسم بياني يعرض كاميرا LatLngBounds أكبر من
      إطار العرض

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

رسم بياني يوضّح هدف الكاميرا في الزاوية السفلية اليمنى من الكاميرا LatLngBounds

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

رسم بياني يعرض كاميرا LatLngBounds بحجم أصغر من إطار العرض

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

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