سبک‌دار کردن نقشه

پلاتفرم را انتخاب کنید: Android iOS JavaScript

این راهنما روش‌هایی را شرح می‌دهد که می‌توانید نقشه‌ای را که در برنامه Android شما هنگام دنبال کردن سفر نمایش داده می‌شود سفارشی‌سازی کنید. می‌توانید ظاهر و احساس نقشه را به روش‌های زیر سفارشی‌سازی کنید:

سبک‌پردازی نقشه با سبک‌پردازی نقشه بااستفاده از فضای ابری

بااستفاده از سبک‌پردازی نقشه بااستفاده از فضای ابری، ظاهر و احساس مؤلفه نقشه‌ها را سفارشی‌سازی کنید. شما سبک‌های نقشه را در کنسول Google Cloud برای هریک از برنامه‌هایتان که از Google Maps استفاده می‌کنند ایجاد و ویرایش می‌کنید، بدون اینکه نیازی به تغییر در کدتان باشد. برای اطلاعات بیشتر، پلاتفرم خود را در سبک‌پردازی نقشه بااستفاده از فضای ابری انتخاب کنید.

هر دو کلاس ConsumerMapView و ConsumerMapFragment از سبک‌پردازی نقشه بااستفاده از فضای ابری پشتیبانی می‌کنند. برای استفاده از سبک‌پردازی نقشه بااستفاده از فضای ابری، مطمئن شوید که پردازنده نقشه انتخاب‌شده LATEST باشد. بخش‌های زیر نمونه‌هایی از نحوه استفاده از سبک‌پردازی نقشه بااستفاده از فضای ابری را در پروژه‌تان نشان می‌دهد.

ConsumerMapView

برای استفاده از سبک‌پردازی نقشه بااستفاده از فضای ابری در ConsumerMapView، فیلد mapId را در GoogleMapOptions تنظیم کنید و GoogleMapOptions را به getConsumerGoogleMapAsync(ConsumerMapReadyCallback, Fragment, GoogleMapOptions) یا getConsumerGoogleMapAsync(ConsumerMapReadyCallback, FragmentActivity, GoogleMapOptions) ارسال کنید.

مثال

جاوا

public class SampleAppActivity extends AppCompatActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ConsumerMapView mapView = findViewById(R.id.consumer_map_view);

    if (mapView != null) {
      GoogleMapOptions optionsWithMapId = new GoogleMapOptions().mapId("map-id");
      mapView.getConsumerGoogleMapAsync(
          new ConsumerMapReadyCallback() {
            @Override
            public void onConsumerMapReady(@NonNull ConsumerGoogleMap consumerGoogleMap) {
              // ...
            }
          },
          /* fragmentActivity= */ this,
          /* googleMapOptions= */ optionsWithMapId);
    }
  }
}

Kotlin

class SampleAppActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    val mapView = findViewById(R.id.consumer_map_view) as ConsumerMapView

    val optionsWithMapId = GoogleMapOptions().mapId("map-id")
    mapView.getConsumerGoogleMapAsync(
      object : ConsumerGoogleMap.ConsumerMapReadyCallback() {
        override fun onConsumerMapReady(consumerGoogleMap: ConsumerGoogleMap) {
          // ...
        }
      },
      /* fragmentActivity= */ this,
      /* googleMapOptions= */ optionsWithMapId)
  }
}

ConsumerMapFragment

دو روش برای استفاده از سبک‌پردازی نقشه بااستفاده از فضای ابری در ConsumerMapFragments وجود دارد:

  • به‌صورت ایستا با XML.
  • به‌طور پویا با newInstance.

به‌صورت ایستا با XML

برای استفاده از سبک‌پردازی نقشه بااستفاده از فضای ابری با XML در ConsumerMapFragment، مشخصه XML map:mapId را با mapId مشخص‌شده اضافه کنید. مثال زیر را ببینید:

<fragment
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:name="com.google.android.libraries.mapsplatform.transportation.consumer.view.ConsumerMapFragment"
    android:id="@+id/consumer_map_fragment"
    map:mapId="map-id"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

به‌طور پویا با newInstance

برای استفاده از سبک‌پردازی نقشه بااستفاده از فضای ابری با newInstance در ConsumerMapFragment، فیلد mapId را روی GoogleMapOptions تنظیم کنید و GoogleMapOptions را به newInstance ارسال کنید. مثال زیر را ببینید:

جاوا

public class SampleFragmentJ extends Fragment {

  @Override
  public View onCreateView(
      @NonNull LayoutInflater inflater,
      @Nullable ViewGroup container,
      @Nullable Bundle savedInstanceState) {

    final View view = inflater.inflate(R.layout.consumer_map_fragment, container, false);

    GoogleMapOptions optionsWithMapId = new GoogleMapOptions().mapId("map-id");
    ConsumerMapFragment consumerMapFragment = ConsumerMapFragment.newInstance(optionsWithMapId);

    getParentFragmentManager()
        .beginTransaction()
        .add(R.id.consumer_map_fragment, consumerMapFragment)
        .commit();

    consumerMapFragment.getConsumerGoogleMapAsync(
        new ConsumerMapReadyCallback() {
          @Override
          public void onConsumerMapReady(@NonNull ConsumerGoogleMap consumerGoogleMap) {
            // ...
          }
        });

    return view;
  }
}

Kotlin

class SampleFragment : Fragment() {
  override fun onCreateView(
    inflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?): View? {

    val view = inflater.inflate(R.layout.consumer_map_fragment, container, false)

    val optionsWithMapId = GoogleMapOptions().mapId("map-id")
    val consumerMapFragment = ConsumerMapFragment.newInstance(optionsWithMapId)

    parentFragmentManager
      .beginTransaction()
      .add(R.id.consumer_map_fragment, consumerMapFragment)
      .commit()

    consumerMapFragment.getConsumerGoogleMapAsync(
      object : ConsumerMapReadyCallback() {
        override fun onConsumerMapReady(consumerGoogleMap: ConsumerGoogleMap) {
          // ...
        }
      })

    return view
  }
}

تنظیم بزرگ‌نمایی دوربین برای تمرکز روی سفر

درطول جلسه فعال هم‌رسانی سفر، می‌توانید بزرگ‌نمایی و فوکوس دوربین را به یکی از دو روش زیر مدیریت کنید:

  • AutoCamera: اگر می‌خواهید از AutoCamera استفاده کنید، لازم نیست کاری انجام دهید. دوربین سفر را دنبال می‌کند. برای جزئیات، به AutoCamera مراجعه کنید.

  • سفارشی‌سازی رفتار دوربین: برای سفارشی‌سازی رفتار دوربین، باید AutoCamera را غیرفعال کنید و سپس سفارشی‌سازی‌هایتان را انجام دهید. برای جزئیات، سفارشی‌سازی رفتار دوربین را ببینید.

‫AutoCamera دوربین را در مرکز قرار می‌دهد

«کیت توسعه نرم‌افزار مصرف‌کننده» ویژگی AutoCamera را ارائه می‌دهد که به‌طور پیش‌فرض در دکمه داخلی مکان من برای «کیت توسعه نرم‌افزار Maps» فعال است. دوربین برای تمرکز روی مسیر سفر و نقطه‌مسیر بعدی سفر بزرگ‌نمایی می‌کند.

اگر می‌خواهید از AutoCamera استفاده کنید، حتماً آن را فعال کنید. برای جزئیات بیشتر، isAutoCameraEnabled را ببینید.

`AutoCamera`

برای جزئیات درباره دکمه مکان من، دکمه مکان من را در اسناد Maps JavaScript API ببینید.

سفارشی‌سازی رفتار دوربین

برای کنترل بیشتر رفتار دوربین، این مراحل را برای غیرفعال کردن AutoCamera و سفارشی‌سازی دستی رفتار دوربین دنبال کنید.

  1. AutoCamera را بااستفاده از ConsumerController.setAutoCameraEnabled() غیرفعال کنید.

  2. بااستفاده از ConsumerController.getCameraUpdate()، محدوده دوربین توصیه‌شده را دریافت کنید.

  3. CameraUpdate را به‌عنوان متغیر مستقل برای یکی از این توابع Android ارائه دهید:

قدم بعدی چیست

دنبال کردن سفر در Android