Harita oluşturun

Platform seçin: Android iOS

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

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

  1. Bir geziyi takip etmek için harita parçası tanımlama
  2. Harita taban katmanı ve görünüm denetleyicisi için destek ekleyin.
  3. Gerekirse vektör haritaları görüntülemek için Android vektör grafikleri için destek ekleyin.

Bir harita tanımladıktan sonra, görsel deneyimi özelleştirmek için istediğiniz ek görünümleri ve kamera kontrollerini 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 geziyi paylaştığınız haritayı oluşturmak için 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ılır.

  • ConsumerMapView: View ile bir harita tanımlamak için kullanılır.

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

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

Android parçası veya görünüm kullanarak gezi 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. Seyahat haritasını ConsumerMapFragment kullanarak bir parça veya ConsumerMapView kullanarak bir görünüm olarak tanımlayın.

    Ardından, parça veya görünüm, uygulamanızın erişebileceği ve değiştirebileceği gezi haritasına erişim sağlar. Harita, ConsumerController için bir tutma yeri de sağlar. Bu sayede uygulamanız, tüketici deneyimini kontrol edip özelleştirebilir.

  2. onCreate() yönteminizden getConsumerGoogleMapAsync(callback) yöntemini çağırın. Bu yöntem, geri çağırmada 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. Parçayı, aşağıdaki kod örneğinde gösterildiği gibi uygulama düzeni XML dosyanızda 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() yöntemine çağrı yapın.

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ü, XML dosyanızda tanımlandığı şekilde bir parçada 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() numarasından getConsumerGoogleMapAsync() numarasını arayın. Geri çağırma parametresine ek olarak aşağıdaki ayrıntıları da ekleyin:

    • İçeren 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.

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

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, bir etkinlikteki MapView için önceki örnekle aynıdır. Ancak parçadaki, onCreateView() yönteminde MapView içeren düzeni genişletir.

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 taban katmanı ve görünüm denetleyicisi için destek ekleme

Uygulamanızda gezi seyrini paylaşmak için uygulamanıza şu sınıfları ekleyin: ConsumerGoogleMap ve ConsumerController.

  • ConsumerGoogleMap değerini ConsumerMapFragment veya ConsumerMapView'dan alın. Her ikisi de ConsumerGoogleMap değerini ConsumerMapReadyCallback içinde 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 haritayla etkileşime geçebilmesi için GoogleMap ile eşdeğer bir API kullanır. Bu sayede uygulamanız, aynı temel Google haritasıyla sorunsuz bir şekilde etkileşim kurabilir. Örneğin, GoogleMap yalnızca tek bir geri çağırma kaydına izin verirken 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() bölgesinde ConsumerGoogleMap şirketinden ConsumerController alın.

    ConsumerController, gezi paylaşımı özelliklerine (ör. gezileri izleme, gezi durumunu kontrol etme ve konumları ayarlama) 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 için destek ekleyin

Uygulama tasarımınızda vektör grafikler için destek gerekiyorsa aşağıdaki adımları uygulayarak Android cihazlar ve vektör çizilebilir öğeler için destek ekleyin:

  1. Aktivitenize aşağıdaki kodu ekleyin. Bu kod, Consumer SDK'da drawable vektörlerin kullanılmasını sağlamak için AppCompatActivity uzantısını kullanır.

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

Harita stilini değiştirme