Karte einrichten

Plattform auswählen: Android iOS

Um einer Fahrt in Ihrer Nutzer-App zu folgen, müssen Sie zuerst eine Karte erstellen und bei Bedarf Vektorkarten unterstützen.

So richten Sie eine Karte in Ihrer App ein:

  1. Definieren Sie ein Kartenfragment für die Fahrt mit anderen Nutzern.
  2. Unterstützung für Basisebene und Ansichts-Controller von Google Maps hinzufügen
  3. Unterstützung für Android-Vektorgrafiken hinzufügen zur Darstellung von Vektorgrafiken Karten erstellen.

Nachdem Sie eine Karte definiert haben, können Sie weitere Ansichten und Kamerafunktionen um das visuelle Erlebnis anzupassen. Weitere Informationen Siehe Karte gestalten.

Schritt 1: Kartenfragment für die Fahrt teilen

Sie definieren eine Karte, indem Sie ein Kartenfragment oder eine Ansicht hinzufügen, um die Karte zu erstellen. On-Demand-Reisen in Ihrer Nutzer-App teilen. Um Ihre Karte zu definieren, verwenden Sie eine der folgenden Methoden:

  • ConsumerMapFragment: Definieren Sie Ihre Karte mit einem Fragment

  • ConsumerMapView: Wird zum Definieren einer Karte mit einem View

Die Funktionen sind für beide Methoden gleich, wählen Sie also die Methode aus. für Ihre Anwendung besser geeignet ist.

Beide Methoden werden im folgenden Abschnitt ausführlicher erläutert.

Kartenfragment oder -ansicht hinzufügen

Um eine Karte zu erstellen, auf der der Fahrtfortschritt angezeigt wird, verwenden Sie entweder Android-Fragment oder -Ansicht anzuzeigen, führen Sie diese Schritte aus und verweisen Sie auf das Codebeispiele.

  1. Definieren Sie ein Fragment oder eine Ansicht in der XML-Datei für das Anwendungslayout unter /res/layout Definieren Sie die Journey Sharing Map entweder als Fragment mithilfe ConsumerMapFragment oder als Ansicht mit ConsumerMapView.

    Das Fragment oder die Ansicht bietet dann Zugriff auf die Journey Freigabekarte, auf die deine App zugreifen und die sie ändern kann. Die Karte enthält auch ein Handle auf das ConsumerController-Element, mit dem deine App steuern und die Reisefreigabe anpassen.

  2. Rufen Sie über die Methode onCreate() getConsumerGoogleMapAsync(callback) auf. wodurch ConsumerGoogleMap asynchron im Callback zurückgegeben wird.

  3. Mit ConsumerGoogleMap können Sie den Fahrtfortschritt anzeigen und bei Bedarf aktualisieren.

Beispiel für das Hinzufügen von ConsumerMapFragment

  1. Definieren Sie das Fragment in Ihrer Anwendungslayout-XML-Datei, wie in im folgenden Codebeispiel.

    <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. getConsumerGoogleMapAsync() über onCreate() anrufen .

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()!!
         }
       }
     )
   }
 }

Beispiel für das Hinzufügen von ConsumerMapView

  1. Verwenden Sie die Ansicht entweder in einem Fragment oder in einer Aktivität, wie in den XML-Datei.

     <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. getConsumerGoogleMapAsync() über onCreate() anrufen In geben Sie zusätzlich zum Callback-Parameter die folgenden Details an:

    • Die Aktivität oder das Fragment, in der sie enthalten ist. Die Aktivität oder Fragmentbasis Klasse muss entweder ein FragmentActivity- oder ein Support-Fragment sein da sie Zugriff auf ihren Lebenszyklus bieten.

    • GoogleMapOptions (kann null sein), enthält die Konfiguration Attribute für die MapView.

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

Eine MapView in einem Fragment ist dieselbe wie im vorherigen Beispiel für MapView in einer Aktivität, mit der Ausnahme, dass das Fragment das Layout erweitert, nimmt das MapView in die onCreateView()-Methode des Fragments auf.

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

Schritt 2: Unterstützung für Basisebene und Controller der Karte hinzufügen

Um die Freigabe von Reisen in Ihrer App zu aktivieren, fügen Sie die folgende Klassen zu Ihrer App hinzufügen: ConsumerGoogleMap und ConsumerController.

  • ConsumerGoogleMap entweder von ConsumerMapFragment oder ConsumerMapView, die beide asynchron zurückgeben "ConsumerGoogleMap" in "ConsumerMapReadyCallback".

    ConsumerGoogleMap ist eine Wrapper-Klasse für die Klasse GoogleMap. Dabei wird ein API, die GoogleMap entspricht, damit deine App mit der Karte interagieren kann. So kann Ihre App nahtlos mit demselben zugrunde liegenden Google-Konto GoogleMap lässt beispielsweise nur eine Callback-Registrierung zu, aber ConsumerGoogleMap unterstützt doppelt registrierte Callbacks. Mit diesen Callbacks können registriert deine App Rückrufe, die nacheinander aufgerufen werden.

  • Hol dir ConsumerController von ConsumerGoogleMap in getConsumerController().

    ConsumerController bietet Zugriff auf Funktionen für das Teilen von Reisen, darunter Fahrten überwachen, Fahrtstatus steuern und Orte festlegen.

Informationen zum Hinzufügen von ConsumerGoogleMap und ConsumerController zu deiner App in Java und Kotlin sehen Sie sich die folgenden Beispiele an.

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

Schritt 3: Unterstützung für Android-Vektorgrafiken hinzufügen

Wenn Ihr App-Design Vektorgrafiken erfordert, fügen Sie Unterstützung für Für Android-Geräte und Vektor-Drawables:

  1. Fügen Sie Ihrer Aktivität den folgenden Code hinzu. Dieser Code bezieht sich auf AppCompatActivity, um die Vektor-Drawables im Consumer SDK zu verwenden.

Java

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

// ...

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

Kotlin

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

// ...

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

Weitere Informationen

Reisen auf Android folgen Karten gestalten