Haritanın stilini ayarlama

Platform seçin: Android iOS JavaScript

Bu kılavuzda, bir geziyi takip ettiğinizde Android uygulamanızda görüntülenen haritayı özelleştirebileceğiniz yöntemler açıklanmaktadır. Haritanın görünümünü ve tarzını aşağıdaki şekillerde özelleştirebilirsiniz:

Bulut tabanlı harita stilleri ile haritaya stil uygulama

Bulut tabanlı harita stillerini kullanarak haritalar bileşeninin görünümünü ve tarzını özelleştirin. Google Haritalar'ı kullanan tüm uygulamalarınız için Google Cloud Console'da harita stilleri oluşturup düzenleyebilirsiniz. Bu işlem için kodunuzda herhangi bir değişiklik yapmanız gerekmez. Daha fazla bilgi için Bulut tabanlı harita stilleri başlıklı makaleyi inceleyin.

Hem ConsumerMapView hem de ConsumerMapFragment sınıfları bulut tabanlı harita stilini destekler. Bulut tabanlı harita stillerini kullanmak için seçili harita oluşturma aracının LATEST olduğundan emin olun. Aşağıdaki bölümlerde, projenizde bulut tabanlı harita stilini nasıl kullanacağınızla ilgili örnekler gösterilmektedir.

ConsumerMapView

ConsumerMapView içinde bulut tabanlı harita stilini kullanmak için GoogleMapOptions üzerinde mapId alanını ayarlayın ve GoogleMapOptions'yi getConsumerGoogleMapAsync(ConsumerMapReadyCallback, Fragment, GoogleMapOptions) veya getConsumerGoogleMapAsync(ConsumerMapReadyCallback, FragmentActivity, GoogleMapOptions) işlevine iletin.

Örnek

Java

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'te bulut tabanlı harita stillerini kullanmanın iki yolu vardır:

  • XML ile statik olarak.
  • newInstance ile dinamik olarak.

XML ile statik olarak

Bulut tabanlı harita stilini ConsumerMapFragment içinde XML ile kullanmak için map:mapId XML özelliğini belirtilen mapId ile ekleyin. Aşağıdaki örneğe bakın:

<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 ile dinamik olarak

ConsumerMapFragment içinde newInstance ile bulut tabanlı harita stilleri kullanmak için GoogleMapOptions üzerinde mapId alanını ayarlayın ve GoogleMapOptions öğesini newInstance olarak iletin. Aşağıdaki örneğe bakın:

Java

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
  }
}

Bir geziye odaklanmak için kamera yakınlaştırmasını ayarlama

Etkin bir gezi paylaşımı oturumu sırasında, kamera yakınlaştırma özelliğini kullanabilir ve şu iki yöntemden birini kullanarak odaklanabilirsiniz:

  • AutoCamera: AutoCamera kullanmak istiyorsanız hiçbir şey yapmanız gerekmez. Kamera, geziyi takip eder. Ayrıntılı bilgi için AutoCamera başlıklı makaleyi inceleyin.

  • Kamera davranışını özelleştirme: Kamera davranışını özelleştirmek için AutoCamera özelliğini devre dışı bırakıp özelleştirmelerinizi yapmanız gerekir. Ayrıntılar için Kamera davranışını özelleştirme başlıklı makaleye göz atın.

AutoCamera, kamerayı ortalayın

Tüketici SDK'sı, Haritalar SDK'sının yerleşik Konumum düğmesinde varsayılan olarak etkinleştirilen bir AutoCamera özelliği sağlar. Kamera, gezi rotasına ve sonraki yol ara noktasına odaklanmak için görüntüyü yakınlaştırır.

AutoCamera kullanmak istiyorsanız uygulamayı etkinleştirdiğinizden emin olun. Daha fazla bilgi için isAutoCameraEnabled başlıklı makaleyi inceleyin.

&quot;AutoKamera&quot;

Konumum düğmesiyle ilgili ayrıntılar için Maps JavaScript API dokümanlarındaki Konumum düğmesine bakın.

Kamera davranışını özelleştirme

Kamera davranışını daha fazla kontrol etmek için AutoCamera'ü devre dışı bırakmak ve kamera davranışını manuel olarak özelleştirmek üzere aşağıdaki adımları uygulayın.

  1. ConsumerController.setAutoCameraEnabled() kullanarak AutoCamera'ü devre dışı bırakın.

  2. ConsumerController.getCameraUpdate() işlevini kullanarak önerilen kamera sınırlarını alın.

  3. CameraUpdate bağımsız değişkenini aşağıdaki Android işlevlerinden birine gönderin:

Sırada ne var?

Android'de bir geziyi takip etme