دوربین را تنظیم کنید

دوربین به شما اجازه می دهد تا دیدگاه کاربر را نسبت به نقشه تغییر دهید. می توانید از حالت های دوربین برای کنترل رفتار نمای نقشه در حین پیمایش استفاده کنید. برای تنظیم حالت دوربین، یکی از روش های زیر مرتبط با دوربین را فراخوانی کنید:

  • موقعیت مکانی من را دنبال کنید ( GoogleMap.followMyLocation ) - حالت پیش فرض دوربین برای پیمایش. این حالت دوربین را روی دستگاه یا وسیله نقلیه تنظیم می کند. در حین ناوبری، دوربین به طور خودکار در جهت حرکت قرار می گیرد. هنگامی که تنظیم جزئیات بالا فعال است ( NavigationMapStyle.HIGH_DETAIL )، خطوط دوبعدی ساختمان زمانی که سطح زوم 19 یا بالاتر باشد نمایش داده می شود.

  • پین شده به مکان ( GoogleMap.animateCamera و GoogleMap.moveCamera ) - دوربین را در یک مکان خاص تعمیر می کند. هنگام استفاده از این حالت، می‌توانید مکان دوربین را به همراه سایر ویژگی‌های دوربین مانند بلبرینگ، شیب، زوم و غیره تنظیم کنید. وقتی این نمای انتخاب شده و Navigator مقداردهی اولیه شد، دکمه مرکز مجدد قابل مشاهده است.

  • نمایش نمای کلی مسیر ( NavigationView.showRouteOverview یا SupportNavigationFragment.showRouteOverview ) - نمای کلی مسیر باقیمانده را نمایش می دهد، در صورت نیاز حرکت و بزرگنمایی را برای قرار دادن مسیر در نمای نقشه نمایش می دهد. وقتی این نما انتخاب شد، دکمه مرکز مجدد قابل مشاهده است.

با کلیک بر روی دکمه مرکز مجدد، دوربین در حالت followMyLocation قرار می گیرد.

حالت موقعیت مکانی من را دنبال کنید

رایج ترین تنظیمات دوربین این است که دوربین را روی دستگاه یا وسیله نقلیه تنظیم کنید تا موقعیت فعلی آن را در سفر نشان دهد. در این حالت دوربین، می‌توانید مسیر را در حالی که ماشین همیشه به سمت بالا از صفحه نمایش با یک پرسپکتیو زاویه‌دار ( CameraPerspective.TILTED ) مشاهده کنید، یا می‌توانید ماشین را در حال حرکت با شمال ( CameraPerspective.TOP_DOWN_NORTH_UP ) یا با سمت ( CameraPerspective.TOP_DOWN_HEADING_UP) ببینید. همیشه در بالای صفحه نمایش

قطعه کد زیر از پرسپکتیو TILTED استفاده می کند:

// Set the camera to follow the device (vehicle):
mNavFragment.getMapAsync(googleMap -> googleMap.followMyLocation(CameraPerspective.TILTED))

به حالت مکان پین شد

حالت Pinned بیشترین کنترل دوربین را در اختیار شما قرار می دهد. در این حالت، دوربین را در یک مکان خاص قرار می دهید، یک یاتاقان را برای جهت دادن به نمای دوربین، تغییر شیب برای تنظیم زاویه دید و تنظیم سطح زوم دوربین را تعیین می کنید.

قطعه کد زیر برخی از روش های متداول حرکت دوربین را نشان می دهد.

private static final LatLng SYDNEY = new LatLng(-33.88, 151.21);
private static final LatLng MOUNTAIN_VIEW = new LatLng(37.4, -122.1);

private GoogleMap map;
... // Obtain the map from a SupportNavigationFragment or NavigationView.

// 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(MOUNTAIN_VIEW)      // 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));

نمایش حالت نمای کلی مسیر

تنظیمات دوربین showRouteOverview کل سفر را نمایش می دهد. برای سفرهای چند مقصدی، این حالت بخش سفر نشده مسیر را نمایش می دهد.

// Place the camera to see the remaining route:
mNavFragment.showRouteOverview();

تنظیم جزئیات بالا

هنگامی که تنظیم جزئیات زیاد فعال است، هنگامی که سطح زوم دوربین روی 19 یا بالاتر تنظیم شده باشد، خطوط کلی ساختمان دو بعدی نمایش داده می شود. می‌توانید با استفاده از یک شی FollowMyLocationOptions ، سطح بزرگ‌نمایی را در حین پیمایش لغو کنید. این به شما امکان می دهد تا سطح بزرگنمایی را به اندازه کافی افزایش دهید تا با نزدیک شدن کاربر به مقصد، خطوط ساختمانی دو بعدی را نمایش دهید.

این مثال تنظیمات با جزئیات بالا را فعال می کند:

  navigationView.setNavigationMapStyle(NavigationMapStyle.HIGH_DETAIL);

مثال زیر سطح زوم دوربین را در حین پیمایش لغو می کند. سطح زوم روی 15 تنظیم شده است که برای نمایش خطوط دو بعدی ساختمان به اندازه کافی بالا است.

  googleMap.followMyLocation(
              FollowMyLocationOptions.builder(CameraPerspective.TILTED)
                      .setZoomLevel(15.0f)
                      .build());

مرحله بعدی

برای یادگیری نحوه سفارشی کردن نحوه تعامل کاربران با نقشه خود با تعیین اینکه کدام یک از اجزای رابط کاربری داخلی روی نقشه ظاهر می شوند، به سفارشی سازی رابط کاربری پیمایش مراجعه کنید.