अपने उपभोक्ता ऐप्लिकेशन में किसी यात्रा को फ़ॉलो करने के लिए, आपको सबसे पहले मैप को परिभाषित करना होगा और ज़रूरत पड़ने पर वेक्टर मैप के लिए सहायता जोड़नी होगी.
अपने ऐप्लिकेशन में मैप सेट अप करने के लिए, यह तरीका अपनाएं:
- किसी यात्रा को फ़ॉलो करने के लिए मैप का हिस्सा तय करना.
- मैप की बुनियादी लेयर और व्यू कंट्रोलर के लिए सहायता जोड़ें.
- अगर ज़रूरी हो, तो वेक्टर मैप दिखाने के लिए Android वेक्टर ग्राफ़िक के लिए सहायता जोड़ें.
मैप तय करने के बाद, ऐसे अन्य व्यू और कैमरे के कंट्रोल जोड़े जा सकते हैं जिनकी मदद से, विज़ुअल अनुभव को पसंद के मुताबिक बनाया जा सके. ज़्यादा जानकारी के लिए, मैप की स्टाइल सेट करना देखें.
पहला चरण: किसी यात्रा को फ़ॉलो करने के लिए मैप फ़्रैगमेंट तय करना
मैप बनाने के लिए, मैप फ़्रैगमेंट या व्यू जोड़कर मैप तय किया जाता है. इस मैप पर, आपके उपभोक्ता ऐप्लिकेशन में ऑन-डिमांड यात्रा की जानकारी शेयर की जाती है. अपना मैप तय करने के लिए, इनमें से कोई एक तरीका अपनाएं:
ConsumerMapFragment
:Fragment
का इस्तेमाल करके, अपने मैप की जानकारी दें.ConsumerMapView
:View
के साथ मैप के बारे में बताने के लिए, इसका इस्तेमाल करें.
दोनों में से किसी भी तरीके के लिए सुविधाएं एक जैसी हैं, इसलिए अपने ऐप्लिकेशन के लिए बेहतर तरीका चुनें.
दोनों तरीकों के बारे में ज़्यादा जानकारी, नीचे दिए गए सेक्शन में दी गई है.
मैप का कोई फ़्रैगमेंट या व्यू जोड़ना
Android फ़्रैगमेंट या व्यू का इस्तेमाल करके, यात्रा की जानकारी दिखाने वाला मैप बनाने के लिए, यह तरीका अपनाएं और कोड के उदाहरण देखें.
/res/layout
में मौजूद, अपने ऐप्लिकेशन के लेआउट की एक्सएमएल फ़ाइल में कोई फ़्रैगमेंट या व्यू तय करें.ConsumerMapFragment
का इस्तेमाल करके, यात्रा के मैप को फ़्रैगमेंट के तौर पर याConsumerMapView
का इस्तेमाल करके व्यू के तौर पर तय करें.इसके बाद, फ़्रैगमेंट या व्यू, ट्रिप मैप का ऐक्सेस देता है. आपका ऐप्लिकेशन इस मैप को ऐक्सेस और उसमें बदलाव कर सकता है. मैप में
ConsumerController
के लिए एक हैंडल भी होता है. इससे आपके ऐप्लिकेशन को उपभोक्ता अनुभव को कंट्रोल करने और पसंद के मुताबिक बनाने में मदद मिलती है.अपने
onCreate()
तरीके से,getConsumerGoogleMapAsync(callback)
को कॉल करें. यह कॉलबैक में एसिंक्रोनस तरीके सेConsumerGoogleMap
दिखाता है.ConsumerGoogleMap
का इस्तेमाल करके, यात्रा की प्रोग्रेस देखें और ज़रूरत के हिसाब से अपडेट करें.
ConsumerMapFragment
जोड़ने के तरीके का उदाहरण
अपने ऐप्लिकेशन के लेआउट एक्सएमएल में फ़्रैगमेंट तय करें, जैसा कि यहां दिए गए कोड के उदाहरण में दिखाया गया है.
<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()
पर कॉल करें.
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
जोड़ने का उदाहरण
अपनी एक्सएमएल फ़ाइल में बताए गए तरीके के मुताबिक, व्यू को फ़्रैगमेंट या ऐक्टिविटी में इस्तेमाल करें.
<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" />
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)
}
}
दूसरा चरण: मैप की बुनियादी लेयर और व्यू कंट्रोलर के लिए सहायता जोड़ना
यात्रा की जानकारी को अपने ऐप्लिकेशन में शेयर करने के लिए, ऐप्लिकेशन में ये क्लास जोड़ें: 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 डिवाइसों और वेक्टर ड्रॉबल के लिए सहायता जोड़ें. इसके लिए, यह तरीका अपनाएं:
- अपनी गतिविधि में यह कोड जोड़ें. इस कोड की मदद से
AppCompatActivity
को उपभोक्ता SDK टूल में वेक्टर ड्रॉएबल का इस्तेमाल किया जा सकता है.
Java
// ...
import android.support.v7.app.AppCompatActivity;
// ...
public class ConsumerTestActivity extends AppCompatActivity {
// ...
}
Kotlin
// ...
import android.support.v7.app.AppCompatActivity
// ...
class ConsumerTestActivity : AppCompatActivity() {
// ...
}