Konfigurowanie mapy

Wybierz platformę: Android iOS

Aby śledzić podróż w aplikacji dla klientów, musisz najpierw określić mapę, a w razie potrzeby dodać obsługę map wektorowych.

Aby skonfigurować mapę w aplikacji:

  1. Definiowanie fragmentu mapy na potrzeby udostępniania podróży
  2. Dodano obsługę warstwy podstawowej map i kontrolera widoku
  3. Dodanie obsługi grafiki wektorowej na Androidzie do wyświetlania wektorów wektorowych map, w razie potrzeby.

Po zdefiniowaniu mapy możesz dodać kolejne widoki i kamery które chcesz dostosować do swoich potrzeb. Aby dowiedzieć się więcej, Więcej informacji: Określanie stylu mapy.

Krok 1. Zdefiniuj fragment mapy do udostępniania podróży

Mapę możesz zdefiniować, dodając fragment mapy lub widok, aby utworzyć mapę, udostępniasz podróż na żądanie w aplikacji dla klientów indywidualnych. Aby zdefiniować mapę: skorzystaj z jednej z tych metod:

  • ConsumerMapFragment: służy do definiowania mapy za pomocą Fragment

  • ConsumerMapView: służy do definiowania mapy za pomocą View

W przypadku obu metod funkcje są takie same, więc wybierz metodę, która jest lepszy dla Twojej aplikacji.

Obie metody zostały szczegółowo wyjaśnione w następnej sekcji.

Dodawanie fragmentu lub widoku mapy

Aby utworzyć mapę wyświetlającą postęp podróży za pomocą fragmentu lub widoku Androida, wykonaj te czynności i zapoznaj się z z przykładami kodu.

  1. Zdefiniuj fragment lub widok w pliku XML układu aplikacji znajdującym się w /res/layout Zdefiniuj mapę udostępniania podróży jako fragment za pomocą atrybutu ConsumerMapFragment lub jako widok przy użyciu ConsumerMapView.

    Następnie fragment lub widok zapewnia dostęp do podróży. udostępnianie mapy, którą aplikacja może przeglądać i modyfikować. Mapa zapewnia też dostęp do funkcji do interfejsu ConsumerController, który umożliwia aplikacji kontrolowanie dostosować środowisko udostępniania.

  2. Za pomocą metody onCreate() wywołaj getConsumerGoogleMapAsync(callback), , które asynchronicznie zwraca ConsumerGoogleMap w wywołaniu zwrotnym.

  3. Aby wyświetlać postępy w podróży i w razie potrzeby je aktualizować, używaj aplikacji ConsumerGoogleMap.

Przykład dodania: ConsumerMapFragment

  1. Zdefiniuj fragment w pliku XML układu aplikacji, jak widać w ten przykładowy kod.

    <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. Zadzwoń pod numer getConsumerGoogleMapAsync() z: onCreate() .

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

Przykład dodania: ConsumerMapView

  1. Korzystaj z widoku we fragmencie lub w aktywności, zgodnie z definicją XML.

     <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. Zadzwoń pod numer getConsumerGoogleMapAsync() z numeru onCreate(). W oprócz parametru wywołania zwrotnego podaj te informacje:

    • Aktywność lub fragment, który go zawiera. Podstawa aktywności lub fragmentu klasa musi być typu FragmentActivity lub wsparcia Fragment ponieważ zapewniają dostęp do ich cyklu życia.

    • GoogleMapOptions (który może mieć wartość null), zawierający konfigurację dla: 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,
    )
  }
}

Pozycja MapView we fragmencie jest taka sama jak w poprzednim przykładzie dla MapView w aktywności, z tym że fragment nadwyższa układ, który zawiera element MapView we fragmencie onCreateView().

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

Krok 2. Dodaj obsługę warstwy podstawowej map i kontrolera widoku

Aby włączyć udostępnianie podróży w aplikacji, dodaj atrybut te zajęcia do Twojej aplikacji: ConsumerGoogleMap i ConsumerController.

  • Uzyskaj ConsumerGoogleMap z ConsumerMapFragment lub ConsumerMapView, które zwracają asynchronicznie ConsumerGoogleMap w: ConsumerMapReadyCallback.

    ConsumerGoogleMap to klasa kodu dla klasy GoogleMap. Wykorzystuje Odpowiednik interfejsu API funkcji GoogleMap, który umożliwia aplikacji interakcję z mapą. Dzięki temu aplikacja może płynnie wchodzić w interakcję z tym samym mapy. Na przykład GoogleMap umożliwia rejestrację tylko z jednym wywołaniem zwrotnym, ConsumerGoogleMap obsługuje podwójne zarejestrowane wywołania zwrotne. Te wywołania zwrotne pozwalają aplikacja rejestruje wywołania zwrotne wywoływane sekwencyjnie.

  • Uzyskaj ConsumerController od sprzedawcy ConsumerGoogleMap w aplikacji getConsumerController().

    ConsumerController umożliwia dostęp do funkcji udostępniania podróży, takich jak do monitorowania podróży, kontrolowania ich stanu i ustawiania lokalizacji.

Aby dowiedzieć się, jak dodać ConsumerGoogleMap i ConsumerController do aplikacji – Java i Kotlin, zapoznaj się z poniższymi przykładami.

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

Krok 3. Dodaj obsługę grafiki wektorowej Androida

Jeśli projektowana aplikacja wymaga obsługi grafiki wektorowej, dodaj obsługę Urządzenia z Androidem i elementy rysowane wektorowo, wykonując te czynności:

  1. Dodaj ten kod do swojej aktywności. Ten kod przedłuża się AppCompatActivity, aby użyć obiektów rysunkowych wektorowych w pakiecie SDK dla klientów indywidualnych.

Java

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

// ...

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

Kotlin

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

// ...

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

Co dalej

Śledzenie podróży na Androidzie Określanie stylu mapy