راه‌اندازی نقشه

پلاتفرم را انتخاب کنید: Android iOS

برای دنبال کردن سفر در برنامه مصرف‌کننده، ابتدا باید نقشه‌ای تعریف کنید و درصورت نیاز، پشتیبانی از نقشه‌های برداری را اضافه کنید.

برای راه‌اندازی نقشه در برنامه‌تان، این مراحل را دنبال کنید:

  1. تعریف قطعه نقشه برای دنبال کردن سفر.
  2. افزودن پشتیبانی برای لایه پایه نقشه‌ها و کنترل‌کننده نما.
  3. درصورت نیاز، پشتیبانی از گرافیک بُرداری Android را اضافه کنید تا نقشه‌های بُرداری نمایش داده شود.

پس‌از تعریف نقشه، می‌توانید نماهای اضافی و کنترل‌های دوربین را که می‌خواهید تجربه دیداری را سفارشی‌سازی کنید اضافه کنید. برای جزئیات بیشتر، به سبک‌بندی نقشه مراجعه کنید.

مرحله ۱: تعریف قطعه نقشه برای دنبال کردن سفر

با افزودن قطعه یا نمای نقشه، نقشه‌ای را تعریف می‌کنید تا نقشه را در جایی ایجاد کنید که سفر درخواستی را در برنامه مصرف‌کننده هم‌رسانی می‌کنید. برای تعریف نقشه، یکی از این روش‌ها را دنبال کنید:

  • ‫ConsumerMapFragment: از آن برای تعریف نقشه با Fragment استفاده کنید.

  • ConsumerMapView: برای تعریف نقشه با View استفاده می‌شود.

ویژگی‌ها برای هر دو روش یکسان است، بنابراین روشی را انتخاب کنید که برای برنامه‌تان بهتر است.

هر دو روش با جزئیات بیشتر در بخش زیر توضیح داده شده است.

افزودن قطعه یا نمای نقشه

برای ایجاد نقشه‌ای برای نمایش پیشرفت سفر بااستفاده از تکه Android یا نما، این مراحل را دنبال کنید و به نمونه‌های کد مراجعه کنید.

  1. تکه‌کد یا نمایی را در فایل XML چیدمان برنامه‌تان که در /res/layout قرار دارد تعریف کنید. نقشه سفر را به‌عنوان قطعه بااستفاده از ConsumerMapFragment یا به‌عنوان نما بااستفاده از ConsumerMapView تعریف کنید.

    سپس قطعه یا نما دسترسی به نقشه سفر را فراهم می‌کند که برنامه‌تان می‌تواند به آن دسترسی داشته باشد و آن را اصلاح کند. نقشه همچنین یک دستگیره برای ConsumerController ارائه می‌دهد که به برنامه شما اجازه می‌دهد تجربه مصرف‌کننده را کنترل و سفارشی‌سازی کند.

  2. از روش onCreate()، getConsumerGoogleMapAsync(callback) را فراخوانی کنید، که ConsumerGoogleMap را به‌صورت ناهمگام در فراخوانی برمی‌گرداند.

  3. از ConsumerGoogleMap برای نمایش پیشرفت سفر و به‌روزرسانی درصورت نیاز استفاده کنید.

نمونه‌ای از نحوه افزودن ConsumerMapFragment

  1. همان‌طور که در نمونه کد زیر نشان داده شده است، قطعه را در فایل 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" />
    
  2. تماسی با getConsumerGoogleMapAsync() از روش onCreate() برقرار کنید.

جاوا

 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

  1. از نما در قطعه یا در فعالیت استفاده کنید، همان‌طور که در فایل 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. با getConsumerGoogleMapAsync() از onCreate() تماس بگیر. علاوه‌بر پارامتر callback، جزئیات زیر را نیز اضافه کنید:

    • فعالیت یا قطعه دربرگیرنده. کلاس پایه فعالیت یا قطعه باید 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);
    }
  }

}

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

‫MapView در قطعه همانند مثال قبلی برای MapView در فعالیت است، با این تفاوت که قطعه طرح‌بندی‌ای را که شامل MapView در روش 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);
  }

}

Kotlin

class MapViewInFragment : Fragment() {
  override fun onCreateView(
    layoutInflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?,
  ): View {
    return layoutInflater.inflate(R.layout.consumer_map_view, viewGroup, false)
  }
}

مرحله ۲: افزودن پشتیبانی برای لایه پایه نقشه‌ها و کنترل‌کننده نما

برای هم‌رسانی پیشرفت سفر در برنامه‌تان، کلاس‌های زیر را به برنامه‌تان اضافه کنید: ConsumerGoogleMap و ConsumerController.

  • ‫ConsumerGoogleMap را از ConsumerMapFragment یا ConsumerMapView دریافت کنید، که هر دو به‌صورت ناهمگام ConsumerGoogleMap را در ConsumerMapReadyCallback برمی‌گردانند.

    ‫ConsumerGoogleMap یک کلاس پوشاننده برای کلاس GoogleMap است. این کیت از یک میانای برنامه‌سازی کاربردی معادل GoogleMap استفاده می‌کند تا برنامه‌تان بتواند با نقشه تعامل داشته باشد. به‌این‌ترتیب، برنامه‌تان می‌تواند به‌طور یکپارچه با همان Google Map زیربنایی تعامل داشته باشد. برای مثال، GoogleMap فقط یک ثبت تماس برگشتی را مجاز می‌کند، اما ConsumerGoogleMap از تماس‌های برگشتی ثبت‌شده دوگانه پشتیبانی می‌کند. این فراخوانی‌های برگشتی به برنامه شما اجازه می‌دهد فراخوانی‌های برگشتی را که به‌صورت متوالی فراخوانی می‌شوند ثبت کند.

  • ‫ConsumerController را از ConsumerGoogleMap در getConsumerController() دریافت کنید.

    ConsumerController دسترسی به ویژگی‌های هم‌رسانی سفر را فراهم می‌کند، ازجمله نظارت بر سفرها، کنترل وضعیت سفر، و تنظیم مکان‌ها.

برای نحوه افزودن ConsumerGoogleMap و ConsumerController به برنامه‌تان در Java و Kotlin، نمونه‌های زیر را ببینید.

جاوا

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

مرحله ۳: افزودن پشتیبانی از گرافیک بُرداری Android

اگر طراحی برنامه‌تان به پشتیبانی از گرافیک بُرداری نیاز دارد، بااستفاده از این مراحل، پشتیبانی از دستگاه‌های Android و ترسیمی‌های بُرداری را اضافه کنید:

  1. کد زیر را به Activity خود اضافه کنید. این کدها AppCompatActivity را گسترش می‌دهند تا از ترسیمی‌های بُرداری در «کیت توسعه نرم‌افزار مصرف‌کننده» استفاده کنند.

جاوا

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

// ...

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

Kotlin

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

// ...

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

مرحله بعدی چیست

دنبال کردن سفر در Android

سبک‌دار کردن نقشه