Harita oluşturun

Platform seçin: Android iOS

Tüketici uygulamanızda bir geziyi takip etmek için öncelikle bir harita oluşturmalı ve gerekirse vektör haritaları için destek eklemelidir.

Uygulamanızda harita oluşturmak için aşağıdaki adımları izleyin:

  1. Yolculuk paylaşımı için bir harita parçası tanımlayın.
  2. Haritalar temel katmanı ve görünüm denetleyicisi için destek ekleyin.
  3. Vektörü görüntülemek amacıyla Android vektör grafikleri desteği ekleme haritalara yer verebilirsiniz.

Bir harita tanımladıktan sonra, ek görünümler ve kamera görüntüleri ekleyebilirsiniz görsel deneyimi özelleştirmek istediğiniz kontrol düğmelerini kullanın. Daha ayrıntılı bilgi için Harita stili belirleme başlıklı makaleyi inceleyin.

1. Adım: Yolculuk paylaşımı için bir harita parçası tanımlayın

Bir haritayı, mevcut bir harita yerine bir harita parçası veya görünümü ekleyerek tüketici uygulamanızda isteğe bağlı bir geziyi paylaşıyorsunuz. Haritanızı tanımlamak için aşağıdaki yöntemlerden birini uygulayın:

  • ConsumerMapFragment: Haritanızı şununla tanımlamak için kullanın: Fragment

  • ConsumerMapView: Bir haritayı View

Özellikler her iki yöntemin de aynı olduğundan hangi yöntemi seçin? uygulamanız için daha iyidir.

Her iki yöntem de aşağıdaki bölümde daha ayrıntılı olarak açıklanmaktadır.

Harita parçası veya görünümü ekleme

Gezi seyrini görüntülemek üzere bir harita oluşturmak için bir Android parçası veya görünümü varsa bu adımları izleyin ve kullanabilirsiniz.

  1. Uygulama düzeni XML dosyanızda bulunan bir parça veya görünüm tanımlayın: /res/layout Yolculuk paylaşımı haritasını aşağıdakileri kullanarak bir parça olarak tanımlayın: ConsumerMapFragment veya ConsumerMapView kullanan bir görünüm olarak.

    Ardından parça veya görünüm, yolculuğa erişim sağlar erişip değiştirebileceği bir harita paylaşımında bulunun. Harita ayrıca ConsumerController için tutma yeri, uygulamanızın kontrol ve kontrol etmesini sağlar. yolculuk paylaşımı deneyimini özelleştirebilirsiniz.

  2. onCreate() yönteminizden getConsumerGoogleMapAsync(callback) işlevini çağırın, Bu, geri çağırmada ConsumerGoogleMap eşzamansız olarak döndürür.

  3. Gezi seyrini görüntülemek ve gerektiğinde güncellemek için ConsumerGoogleMap simgesini kullanın.

ConsumerMapFragment ekleme örneği

  1. Parçayı aşağıdaki gibi uygulama düzeni XML dosyanızda tanımlayın: aşağıdaki kod örneğine bakalım.

    <fragment
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:name="com.google.android.libraries.mapsplatform.transportation.consumer.view.ConsumerMapFragment"
        android:id="@+id/consumer_map_fragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    
  2. onCreate() içinden getConsumerGoogleMapAsync() numaralı telefonu arayın yöntemidir.

Java

 public class SampleAppActivity extends AppCompatActivity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {

     // Find the ConsumerMapFragment.
     ConsumerMapFragment consumerMapFragment =
         (ConsumerMapFragment) fragmentManager.findFragmentById(R.id.consumer_map_fragment);

     // Initiate the callback that returns the map.
     if (consumerMapFragment != null) {
       consumerMapFragment.getConsumerGoogleMapAsync(
           new ConsumerMapReadyCallback() {
             // The map returned in the callback is used to access the ConsumerController.
             @Override
             public void onConsumerMapReady(@NonNull ConsumerGoogleMap consumerGoogleMap) {
               ConsumerController consumerController = consumerGoogleMap.getConsumerController();
             }
           });
     }
   }

 }

Kotlin

 class SampleAppActivity : AppCompatActivity() {
   override fun onCreate(savedInstanceState: Bundle?) {
     // Find the ConsumerMapFragment.
     val consumerMapFragment =
       fragmentManager.findFragmentById(R.id.consumer_map_fragment) as ConsumerMapFragment

     consumerMapFragment.getConsumerGoogleMapAsync(
       object : ConsumerMapReadyCallback() {
         override fun onConsumerMapReady(consumerGoogleMap: ConsumerGoogleMap) {
           val consumerController = consumerGoogleMap.getConsumerController()!!
         }
       }
     )
   }
 }

ConsumerMapView ekleme örneği

  1. Görünümü aşağıda açıklandığı gibi bir parçanın içinde veya bir etkinlikte kullanın: XML dosyası olarak kaydedin.

     <com.google.android.libraries.mapsplatform.transportation.consumer.view.ConsumerMapView
         xmlns:android="http://schemas.android.com/apk/res/android"
         android:id="@+id/consumer_map_view"
         android:layout_width="match_parent"
         android:layout_height="match_parent" />
    
  2. onCreate() uygulamasından getConsumerGoogleMapAsync() numaralı telefonu ara. İçinde geri çağırma parametresine ek olarak aşağıdaki bilgileri ekleyin:

    • Kapsayıcı etkinliği veya parça. Etkinlik veya parça tabanı sınıfı bir FragmentActivity veya destek Fragment olmalıdır ürün yaşam döngüsüne erişim sağladığı için (sırasıyla)

    • Yapılandırmayı içeren GoogleMapOptions (boş olabilir) özellikleri MapView için geçerlidir.

Java

public class SampleAppActivity extends AppCompatActivity {

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

    if (mapView != null) {
      mapView.getConsumerGoogleMapAsync(
          new ConsumerMapReadyCallback() {
            // The map returned in the callback is used to access the ConsumerController.
            @Override
            public void onConsumerMapReady(@NonNull ConsumerGoogleMap consumerGoogleMap) {
              ConsumerController consumerController = consumerGoogleMap.getConsumerController();
            }
          }, this, null);
    }
  }

}

Kotlin

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

    mapView.getConsumerGoogleMapAsync(
      object : ConsumerMapReadyCallback() {
        // The map returned in the callback is used to access the ConsumerController.
        override fun onConsumerMapReady(consumerGoogleMap: ConsumerGoogleMap) {
          val consumerController = consumerGoogleMap.getConsumerController()!!
        }
      },
      /* fragmentActivity= */ this,
      /* googleMapOptions= */ null,
    )
  }
}

Bir parçadaki MapView, önceki örneğindekiyle aynıdır. MapView parçasının, parçanın onCreateView() parçası yönteminde MapView öğesini içerir.

Java

public class MapViewInFragment extends Fragment {

  @Override
  public View onCreateView(
      @NonNull LayoutInflater layoutInflater,
      @Nullable ViewGroup viewGroup,
      @Nullable Bundle bundle) {
    return layoutInflater.inflate(R.layout.consumer_map_view, viewGroup, false);
  }

}

Kotlin

class MapViewInFragment : Fragment() {
  override fun onCreateView(
    layoutInflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?,
  ): View {
    return layoutInflater.inflate(R.layout.consumer_map_view, viewGroup, false)
  }
}

2. Adım: Harita temel katmanı ve görünüm denetleyicisi için destek ekleyin

Uygulamanızda yolculuk paylaşımını etkinleştirmek için şu sınıfları uygulamanıza ekleyin: ConsumerGoogleMap ve ConsumerController.

  • ConsumerGoogleMap öğesini ConsumerMapFragment veya ConsumerMapView (her ikisi de eşzamansız olarak döndürülür) ConsumerMapReadyCallback içinde ConsumerGoogleMap.

    ConsumerGoogleMap, GoogleMap sınıfı için bir sarmalayıcı sınıfıdır. Bir Uygulamanızın haritayla etkileşim kurabilmesi için GoogleMap ile eşdeğer API. Bu şekilde, uygulamanız, Google Cloud Platform'un sunduğu haritası. Örneğin, GoogleMap yalnızca tek bir geri arama kaydına izin verir, ancak ConsumerGoogleMap, çift kayıtlı geri çağırmayı destekler. Bu geri çağırma işlevleri, sırayla çağrılan uygulama kaydı geri çağırmaları bulun.

  • getConsumerController() bölgesinde ConsumerGoogleMap adlı satıcıdan ConsumerController kazanın.

    ConsumerController, şu gibi yolculuk paylaşımı özelliklerine erişim sağlar: seyahat durumunu kontrol etme ve yer belirleme gibi ayarlar ekleyebilirsiniz.

ConsumerGoogleMap ve ConsumerController uygulamalarını uygulamanıza nasıl ekleyeceğiniz için Java ve Kotlin için aşağıdaki örneklere bakın.

Java

private ConsumerGoogleMap consumerGoogleMap;
private ConsumerController consumerController;
private ConsumerMapView consumerMapView;

consumerMapView.getConsumerGoogleMapAsync(
    new ConsumerMapReadyCallback() {
      @Override
      public void onConsumerMapReady(@NonNull ConsumerGoogleMap consumerMap) {
        consumerGoogleMap = consumerMap;
        consumerController = consumerMap.getConsumerController();
      }
    },
    this, null);

Kotlin

var consumerGoogleMap: ConsumerGoogleMap
var consumerController: ConsumerController
val consumerMapView = findViewById(R.id.consumer_map_view) as ConsumerMapView

consumerMapView.getConsumerGoogleMapAsync(
  object : ConsumerMapReadyCallback() {
    override fun onConsumerMapReady(consumerMap: ConsumerGoogleMap) {
      consumerGoogleMap = consumerMap
      consumerController = consumerMap.getConsumerController()
    },
    /* fragmentActivity= */ this,
    /* googleMapOptions= */ null,
  }
)

3. Adım: Android vektör grafikleri için destek ekleyin

Uygulama tasarımınız vektör grafikleri için destek gerektiriyorsa, Android cihazlar ve vektör çekilebilir öğeleri için şu adımları uygulayın:

  1. Aşağıdaki kodu Etkinliğinize ekleyin. Bu kodların kullanım kapsamı Tüketici SDK'sında Vector çekilebilir kaynaklarını kullanmak için AppCompatActivity.

Java

// ...
import android.support.v7.app.AppCompatActivity;

// ...

public class ConsumerTestActivity extends AppCompatActivity {
  // ...
}

Kotlin

// ...
import android.support.v7.app.AppCompatActivity

// ...

class ConsumerTestActivity : AppCompatActivity() {
  // ...
}

Sonraki Adımlar

Android'de bir geziyi takip etme Haritanın stilini ayarlama