Harita oluşturun

Platform seçin: Android iOS

Tüketici uygulamanızda bir geziyi takip etmek için önce bir harita tanımlamanız ve gerekirse vektör haritaları desteği eklemeniz gerekir.

Uygulamanızda harita ayarlamak için aşağıdaki adımları uygulayın:

  1. Bir geziyi takip etmek için harita parçası tanımlayın.
  2. Harita ana katmanı ve görüntü kontrol cihazı desteği ekleyin.
  3. Gerekirse vektör haritalarını görüntülemek için Android vektör grafikleri desteği ekleyin.

Bir harita tanımladıktan sonra görsel deneyimi özelleştirmek istediğiniz ek görünümler ve kamera kontrolleri ekleyebilirsiniz. Daha fazla bilgi için Haritaya stil uygulama başlıklı makaleyi inceleyin.

1. Adım: Bir geziyi takip etmek için harita parçası tanımlayın

Tüketici uygulamanızda isteğe bağlı bir gezi paylaştığınız haritayı oluşturmak için bir harita parçası veya görünüm ekleyerek harita tanımlarsınız. Haritanızı tanımlamak için aşağıdaki yöntemlerden birini uygulayın:

  • ConsumerMapFragment: Haritanızı Fragment ile tanımlamak için kullanın.

  • ConsumerMapView: View içeren bir harita tanımlamak için kullanın.

Özellikler her iki yöntem için de aynıdır. Bu nedenle, uygulamanız için en uygun yöntemi seçin.

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

Harita fragmanı veya görünümü ekleme

Android fragment'i veya görünümü kullanarak seyahat ilerleme durumunu gösteren bir harita oluşturmak için aşağıdaki adımları uygulayın ve kod örneklerine bakın.

  1. /res/layout konumundaki uygulama düzeni XML dosyanızda bir parça veya görünüm tanımlayın. Gezi haritasını ConsumerMapFragment kullanarak bir parça veya ConsumerMapView kullanarak bir görünüm olarak tanımlayın.

    Ardından, uygulamanızın erişip değiştirebileceği seyahat haritasına erişim sağlar. Harita, ConsumerController için bir tutamaç da sağlar. Bu tutamaç, uygulamanızın tüketici deneyimini kontrol etmesine ve özelleştirmesine olanak tanır.

  2. onCreate() yönteminizden getConsumerGoogleMapAsync(callback)'u çağırın. Bu yöntem, geri aramada ConsumerGoogleMap değerini eşzamansız olarak döndürür.

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

ConsumerMapFragment ekleme örneği

  1. Aşağıdaki kod örneğinde gösterildiği gibi, uygulama düzeni XML dosyanızda parçayı tanımlayın.

    <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() yönteminden getConsumerGoogleMapAsync()'e telefon edin.

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. XML dosyanızda tanımlandığı şekilde, görünümü bir fragmanda veya etkinlikte kullanın.

     <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() kaynağından getConsumerGoogleMapAsync() grubuna arama yapın. Geri çağırma parametresine ek olarak aşağıdaki ayrıntıları ekleyin:

    • İçerdiği etkinlik veya parça. Etkinlik veya parça temel sınıfı, yaşam döngüsüne erişim sağladığından sırasıyla FragmentActivity veya destek Fragment olmalıdır.

    • MapView için yapılandırma özelliklerini içeren GoogleMapOptions (boş olabilir).

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 fragmanda MapView, bir etkinlikte MapView için önceki örnekle aynıdır. Bunun tek farkı, fragmanın onCreateView() yönteminde MapView öğesini içeren düzeni şişirmesidir.

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: Haritalar ana katmanı ve görüntüleme denetleyicisi desteği ekleyin

Uygulamanızda gezideki ilerleme durumunu paylaşmak için uygulamanıza aşağıdaki sınıfları ekleyin: ConsumerGoogleMap ve ConsumerController.

  • ConsumerMapFragment veya ConsumerMapView'den ConsumerGoogleMap alın. Her ikisi de ConsumerMapReadyCallback içinde ConsumerGoogleMap'yi eşzamansız olarak döndürür.

    ConsumerGoogleMap, GoogleMap sınıfı için bir sarmalayıcı sınıftır. Uygulamanızın harita ile etkileşim kurabilmesi için GoogleMap ile eşdeğer bir API kullanır. Bu sayede uygulamanız, temel alınan aynı Google haritasıyla sorunsuz şekilde etkileşim kurabilir. Örneğin, GoogleMap yalnızca tek bir geri çağırma kaydına izin verir ancak ConsumerGoogleMap çift kayıtlı geri çağırmaları destekler. Bu geri çağırmalar, uygulamanızın sırayla çağrılan geri çağırmaları kaydetmesine olanak tanır.

  • getConsumerController()'de ConsumerGoogleMap'dan ConsumerController alın.

    ConsumerController, gezileri izleme, gezi durumunu kontrol etme ve konum belirleme gibi gezi paylaşımı özelliklerine erişim sağlar.

Java ve Kotlin'de uygulamanıza ConsumerGoogleMap ve ConsumerController ekleme hakkında bilgi edinmek 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 desteği ekleyin

Uygulama tasarımınız vektör grafikleri desteği gerektiriyorsa aşağıdaki adımları uygulayarak Android cihazlar ve vektör çizilebilir öğeler için destek ekleyin:

  1. Etkinliğinize aşağıdaki kodu ekleyin. Bu kodlar, AppCompatActivity'ü Tüketici SDK'sında Vektör çizilebilir öğelerini kullanacak şekilde genişletir.

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

Haritaya stil uygulama