برای دنبال کردن یک سفر در برنامه مصرف کننده خود، ابتدا باید یک نقشه تعریف کنید و در صورت نیاز، پشتیبانی از نقشه های برداری را اضافه کنید.
برای تنظیم نقشه در برنامه خود، این مراحل را دنبال کنید:
- یک قطعه نقشه را برای دنبال کردن یک سفر تعریف کنید .
- پشتیبانی برای لایه پایه نقشه و کنترلر مشاهده اضافه کنید .
- در صورت نیاز ، پشتیبانی از گرافیک های برداری اندروید را برای نمایش نقشه های برداری اضافه کنید .
پس از تعریف نقشه، میتوانید نماها و کنترلهای دوربین دیگری را که میخواهید تجربه بصری را سفارشی کنید، اضافه کنید. برای جزئیات بیشتر، به Style a map مراجعه کنید.
مرحله 1: یک قطعه نقشه را برای دنبال کردن یک سفر تعریف کنید
شما یک نقشه را با افزودن یک قطعه یا نمای نقشه تعریف میکنید تا نقشهای را ایجاد کنید که در آن یک سفر درخواستی را در برنامه مصرفکننده خود به اشتراک میگذارید. برای تعریف نقشه خود یکی از روش های زیر را دنبال کنید:
- ConsumerMapFragment: برای تعریف نقشه خود با یک- Fragmentاستفاده کنید.
- ConsumerMapView: برای تعریف نقشه با- Viewاستفاده کنید.
ویژگی ها برای هر یک از روش ها یکسان است، بنابراین انتخاب کنید که کدام روش برای برنامه شما بهتر است.
هر دو روش با جزئیات بیشتر در بخش زیر توضیح داده شده است.
یک قطعه یا نمای نقشه اضافه کنید
برای ایجاد نقشه برای نمایش پیشرفت سفر با استفاده از یک قطعه اندروید یا یک نمای، این مراحل را دنبال کنید و به نمونه کدها مراجعه کنید.
- یک قطعه یا نمای را در فایل XML طرحبندی برنامه خود که در - /res/layoutقرار دارد، تعریف کنید. نقشه سفر را به عنوان یک قطعه با استفاده- ConsumerMapFragmentیا به عنوان یک نمای با استفاده از- ConsumerMapViewتعریف کنید.- سپس قطعه یا نمای، دسترسی به نقشه سفر را فراهم می کند که برنامه شما می تواند به آن دسترسی داشته باشد و آن را تغییر دهد. این نقشه همچنین یک دسته برای - ConsumerControllerارائه می دهد که به برنامه شما اجازه می دهد تا تجربه مصرف کننده را کنترل و سفارشی کند.
- از روش - onCreate()خود،- getConsumerGoogleMapAsync(callback)را فراخوانی کنید، که- ConsumerGoogleMapبه صورت ناهمزمان در پاسخ به تماس برمی گرداند.
- از - ConsumerGoogleMapبرای نمایش پیشرفت سفر و بهروزرسانی در صورت نیاز استفاده کنید.
 مثالی از نحوه افزودن ConsumerMapFragment
- همانطور که در مثال کد زیر نشان داده شده است، قطعه را در فایل XML طرح بندی برنامه خود تعریف کنید. - <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" />
- از متد - onCreate()) با- getConsumerGoogleMapAsync()تماس بگیرید.
جاوا
 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();
             }
           });
     }
   }
 }
کاتلین
 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
- همانطور که در فایل XML خود تعریف شده است، از view در یک قطعه یا در یک فعالیت استفاده کنید. - <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" />
- با - getConsumerGoogleMapAsync()از- onCreate()تماس بگیرید. علاوه بر پارامتر پاسخ به تماس، جزئیات زیر را نیز درج کنید:- فعالیت یا قطعه حاوی. اکتیویتی یا کلاس پایه قطعه باید به ترتیب یک - FragmentActivityیا یک- Fragmentپشتیبانی باشد، زیرا آنها دسترسی به چرخه حیات آن را فراهم می کنند.
- GoogleMapOptions(که می تواند تهی باشد)، حاوی ویژگی های پیکربندی برای- MapView.
 
جاوا
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);
    }
  }
}
کاتلین
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,
    )
  }
}
 MapView در یک قطعه مانند مثال قبلی برای MapView در یک اکتیویتی است، با این تفاوت که قطعه، طرحی را که شامل MapView در متد ()Fragment در قطعه onCreateView() است، افزایش میدهد. 
جاوا
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);
  }
}
کاتلین
class MapViewInFragment : Fragment() {
  override fun onCreateView(
    layoutInflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?,
  ): View {
    return layoutInflater.inflate(R.layout.consumer_map_view, viewGroup, false)
  }
}
مرحله 2: پشتیبانی از لایه پایه نقشه و کنترلر را اضافه کنید
 برای اشتراکگذاری پیشرفت سفر در برنامه خود، کلاسهای زیر را به برنامه خود اضافه کنید: ConsumerGoogleMap و ConsumerController .
- ConsumerGoogleMapاز- ConsumerMapFragmentیا- ConsumerMapViewدریافت کنید، که هر دو به طور ناهمزمان- ConsumerGoogleMapدر- ConsumerMapReadyCallbackبرمیگردانند.- ConsumerGoogleMapیک کلاس پوششی برای کلاس- GoogleMapاست. از یک API معادل- GoogleMapاستفاده می کند تا برنامه شما بتواند با نقشه تعامل داشته باشد. به این ترتیب، برنامه شما می تواند به طور یکپارچه با همان نقشه زیرین گوگل تعامل داشته باشد. به عنوان مثال،- GoogleMapتنها امکان ثبت نام پاسخ به تماس را می دهد، اما- ConsumerGoogleMapاز تماس های ثبت شده دوگانه پشتیبانی می کند. این تماسها به برنامه شما اجازه میدهند تا تماسهایی را که بهطور متوالی فراخوانی میشوند، ثبت کند.
- ConsumerControllerاز- ConsumerGoogleMapدر- getConsumerController()دریافت کنید.- ConsumerControllerدسترسی به ویژگی های اشتراک گذاری سفر مانند مانیتور سفرها، کنترل وضعیت سفر و تعیین مکان را فراهم می کند.
 برای نحوه افزودن ConsumerGoogleMap و ConsumerController به برنامه خود در جاوا و کاتلین، به مثال های زیر مراجعه کنید. 
جاوا
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);
کاتلین
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: پشتیبانی از گرافیک های برداری اندروید را اضافه کنید
اگر طراحی برنامه شما نیاز به پشتیبانی از گرافیک برداری دارد، با استفاده از این مراحل، پشتیبانی از دستگاههای Android و ترسیمهای برداری را اضافه کنید:
-  کد زیر را به Activity خود اضافه کنید. این کد AppCompatActivityبرای استفاده از ترسیمهای Vector در Consumer SDK گسترش میدهد.
جاوا
// ...
import android.support.v7.app.AppCompatActivity;
// ...
public class ConsumerTestActivity extends AppCompatActivity {
  // ...
}
کاتلین
// ...
import android.support.v7.app.AppCompatActivity
// ...
class ConsumerTestActivity : AppCompatActivity() {
  // ...
}
بعد چه است
یک سفر را در اندروید دنبال کنید