मैप सेट अप करें

प्लैटफ़ॉर्म चुनें: Android iOS

अपने उपभोक्ता ऐप्लिकेशन में किसी यात्रा को ट्रैक करने के लिए, आपको सबसे पहले एक मैप तय करना होगा. साथ ही, ज़रूरत पड़ने पर वेक्टर मैप के लिए सहायता जोड़नी होगी.

अपने ऐप्लिकेशन में मैप सेट अप करने के लिए, यह तरीका अपनाएं:

  1. यात्रा की जानकारी देखने के लिए, मैप फ़्रैगमेंट तय करना.
  2. मैप की बुनियादी लेयर और व्यू कंट्रोलर के लिए सहायता जोड़ें.
  3. ज़रूरत पड़ने पर, वेक्टर मैप दिखाने के लिए Android वेक्टर ग्राफ़िक्स के लिए सहायता जोड़ें.

मैप तय करने के बाद, ऐसे अन्य व्यू और कैमरे के कंट्रोल जोड़े जा सकते हैं जिनकी मदद से, विज़ुअल अनुभव को पसंद के मुताबिक बनाया जा सके. ज़्यादा जानकारी के लिए, मैप को स्टाइल करना देखें.

पहला चरण: किसी यात्रा को फ़ॉलो करने के लिए मैप फ़्रैगमेंट तय करना

मैप बनाने के लिए, मैप फ़्रैगमेंट या व्यू जोड़कर मैप तय किया जाता है. इस मैप पर, आपके उपभोक्ता ऐप्लिकेशन में ऑन-डिमांड यात्रा की जानकारी शेयर की जाती है. अपना मैप तय करने के लिए, इनमें से कोई एक तरीका अपनाएं:

  • ConsumerMapFragment: Fragment का इस्तेमाल करके, अपने मैप की जानकारी दें.

  • ConsumerMapView: View के साथ मैप तय करने के लिए इस्तेमाल करें.

दोनों तरीकों के लिए सुविधाएं एक जैसी होती हैं. इसलिए, यह चुनें कि आपके ऐप्लिकेशन के लिए कौनसा तरीका बेहतर है.

दोनों तरीकों के बारे में ज़्यादा जानकारी, नीचे दिए गए सेक्शन में दी गई है.

मैप का कोई फ़्रैगमेंट या व्यू जोड़ना

Android फ़्रैगमेंट या व्यू का इस्तेमाल करके, यात्रा की प्रोग्रेस दिखाने के लिए मैप बनाने के लिए, यह तरीका अपनाएं और कोड के उदाहरण देखें.

  1. /res/layout में मौजूद, अपने ऐप्लिकेशन के लेआउट की एक्सएमएल फ़ाइल में कोई फ़्रैगमेंट या व्यू तय करें. ConsumerMapFragment का इस्तेमाल करके, ट्रिप मैप को फ़्रैगमेंट के तौर पर या ConsumerMapView का इस्तेमाल करके, व्यू के तौर पर तय करें.

    इसके बाद, फ़्रैगमेंट या व्यू, ट्रिप मैप का ऐक्सेस देता है. आपका ऐप्लिकेशन इस मैप को ऐक्सेस और उसमें बदलाव कर सकता है. मैप में ConsumerController के लिए एक हैंडल भी होता है. इससे आपके ऐप्लिकेशन को उपभोक्ता अनुभव को कंट्रोल करने और पसंद के मुताबिक बनाने में मदद मिलती है.

  2. अपने onCreate() तरीके से, getConsumerGoogleMapAsync(callback) को कॉल करें, जो कॉलबैक में ConsumerGoogleMap को एसिंक्रोनस तरीके से दिखाता है.

  3. ConsumerGoogleMap का इस्तेमाल करके, यात्रा की प्रोग्रेस देखें और ज़रूरत के हिसाब से अपडेट करें.

ConsumerMapFragment जोड़ने का उदाहरण

  1. अपने ऐप्लिकेशन के लेआउट एक्सएमएल में फ़्रैगमेंट तय करें, जैसा कि यहां दिए गए कोड के उदाहरण में दिखाया गया है.

    <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() वाले तरीके से getConsumerGoogleMapAsync() पर कॉल करें.

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 जोड़ने का उदाहरण

  1. अपनी एक्सएमएल फ़ाइल में बताए गए तरीके के मुताबिक, व्यू को फ़्रैगमेंट या ऐक्टिविटी में इस्तेमाल करें.

     <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() से getConsumerGoogleMapAsync() को कॉल करें. कॉलबैक पैरामीटर के अलावा, यह जानकारी भी शामिल करें:

    • उसमें शामिल गतिविधि या फ़्रैगमेंट. ऐक्टिविटी या फ़्रैगमेंट का बुनियादी क्लास, FragmentActivity या सहायता Fragment होना चाहिए. ऐसा इसलिए, क्योंकि ये लाइफ़साइकल का ऐक्सेस देते हैं.

    • GoogleMapOptions (जो शून्य हो सकता है), जिसमें 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,
    )
  }
}

फ़्रैगमेंट में मौजूद MapView, ऐक्टिविटी में मौजूद MapView के पिछले उदाहरण जैसा ही होता है. हालांकि, फ़्रैगमेंट onCreateView() वाले तरीके में, फ़्रैगमेंट उस लेआउट को इनफ़्लेट करता है जिसमें MapView शामिल होता है.

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

दूसरा चरण: Maps की बेस लेयर और व्यू कंट्रोलर के लिए सहायता जोड़ना

अपने ऐप्लिकेशन में यात्रा की प्रोग्रेस शेयर करने के लिए, अपने ऐप्लिकेशन में ये क्लास जोड़ें: ConsumerGoogleMap और ConsumerController.

  • ConsumerMapFragment या ConsumerMapView में से किसी एक से ConsumerGoogleMap पाएं. दोनों ही ConsumerMapReadyCallback में ConsumerGoogleMap को अलग-अलग समय पर दिखाते हैं.

    ConsumerGoogleMap, GoogleMap क्लास के लिए एक रैपर क्लास है. यह GoogleMap के बराबर एपीआई का इस्तेमाल करता है, ताकि आपका ऐप्लिकेशन मैप के साथ इंटरैक्ट कर सके. इस तरह, आपका ऐप्लिकेशन उसी Google मैप के साथ आसानी से इंटरैक्ट कर सकता है. उदाहरण के लिए, GoogleMap में सिर्फ़ एक कॉलबैक रजिस्ट्रेशन की अनुमति है, लेकिन ConsumerGoogleMap में दो कॉलबैक रजिस्ट्रेशन की सुविधा है. इन कॉलबैक की मदद से, आपके ऐप्लिकेशन में कॉलबैक रजिस्टर किए जा सकते हैं. इन्हें क्रम से कॉल किया जाता है.

  • getConsumerController() में ConsumerGoogleMap से ConsumerController पाएं.

    ConsumerController, यात्रा की जानकारी शेयर करने की सुविधाओं का ऐक्सेस देता है. जैसे, यात्राओं को मॉनिटर करना, यात्रा की स्थिति कंट्रोल करना, और जगह की जानकारी सेट करना.

Java और Kotlin में अपने ऐप्लिकेशन में ConsumerGoogleMap और ConsumerController को जोड़ने का तरीका जानने के लिए, यहां दिए गए उदाहरण देखें.

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

तीसरा चरण: Android वेक्टर ग्राफ़िक के लिए सहायता जोड़ना

अगर आपके ऐप्लिकेशन के डिज़ाइन में वेक्टर ग्राफ़िक की ज़रूरत है, तो Android डिवाइसों और वेक्टर ड्रॉबल के लिए सहायता जोड़ें. इसके लिए, यह तरीका अपनाएं:

  1. अपनी गतिविधि में यह कोड जोड़ें. यह कोड, Consumer SDK में वेक्टर ड्रॉबल का इस्तेमाल करने के लिए, AppCompatActivity को बढ़ाता है.

Java

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

// ...

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

Kotlin

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

// ...

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

आगे क्या करना है

Android पर किसी यात्रा को ट्रैक करना

मैप की स्टाइल अपने हिसाब से तय करना