मैप को शैली में ढालें

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

  • क्लाउड पर मैप की स्टाइलिंग की सुविधाओं का इस्तेमाल करना
  • मैप स्टाइल के विकल्पों को सीधे अपने कोड में सेट करना

क्लाउड पर मैप की स्टाइलिंग की सुविधाओं का इस्तेमाल करके, मैप की स्टाइल तय करना

क्लाउड पर मैप की स्टाइलिंग की सुविधाओं का इस्तेमाल करके, मैप कॉम्पोनेंट के लुक और स्टाइल को पसंद के मुताबिक बनाएं. Google Maps का इस्तेमाल करने वाले अपने किसी भी ऐप्लिकेशन के लिए, Google Cloud Console में मैप स्टाइल बनाएं और उनमें बदलाव करें. इसके लिए, आपको अपने कोड में कोई बदलाव करने की ज़रूरत नहीं है. ज़्यादा जानकारी के लिए, क्लाउड पर मैप की स्टाइलिंग देखें.

ConsumerMapView और ConsumerMapFragment क्लास, दोनों में क्लाउड पर मैप की स्टाइलिंग की सुविधा काम करती है. क्लाउड पर मैप की स्टाइलिंग की सुविधाओं का इस्तेमाल करने के लिए, पक्का करें कि चुना गया मैप रेंडरर LATEST हो. नीचे दिए गए सेक्शन में, अपने प्रोजेक्ट के साथ क्लाउड-आधारित मैप स्टाइल का इस्तेमाल करने के उदाहरण दिए गए हैं.

ConsumerMapView

ConsumerMapView में क्लाउड-आधारित मैप स्टाइल का इस्तेमाल करने के लिए, mapId फ़ील्ड को GoogleMapOptions पर सेट करें और GoogleMapOptions को getConsumerGoogleMapAsync(ConsumerMapReadyCallback, Fragment, GoogleMapOptions) या getConsumerGoogleMapAsync(ConsumerMapReadyCallback, FragmentActivity, GoogleMapOptions) पर पास करें

उदाहरण

Java

public class SampleAppActivity extends AppCompatActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ConsumerMapView mapView = findViewById(R.id.consumer_map_view);

    if (mapView != null) {
      GoogleMapOptions optionsWithMapId = new GoogleMapOptions().mapId("map-id");
      mapView.getConsumerGoogleMapAsync(
          new ConsumerMapReadyCallback() {
            @Override
            public void onConsumerMapReady(@NonNull ConsumerGoogleMap consumerGoogleMap) {
              // ...
            }
          },
          /* fragmentActivity= */ this,
          /* googleMapOptions= */ optionsWithMapId);
    }
  }
}

Kotlin

class SampleAppActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    val mapView = findViewById(R.id.consumer_map_view) as ConsumerMapView

    val optionsWithMapId = GoogleMapOptions().mapId("map-id")
    mapView.getConsumerGoogleMapAsync(
      object : ConsumerGoogleMap.ConsumerMapReadyCallback() {
        override fun onConsumerMapReady(consumerGoogleMap: ConsumerGoogleMap) {
          // ...
        }
      },
      /* fragmentActivity= */ this,
      /* googleMapOptions= */ optionsWithMapId)
  }
}

ConsumerMapFragment

ConsumerMapFragments में, क्लाउड पर मैप की स्टाइलिंग की सुविधाओं का इस्तेमाल करने के दो तरीके हैं:

  • स्टैटिक तौर पर, एक्सएमएल के साथ.
  • newInstance के साथ डाइनैमिक तौर पर.

एक्सएमएल के साथ स्टैटिक तौर पर

ConsumerMapFragment में एक्सएमएल के साथ क्लाउड पर मैप की स्टाइलिंग की सुविधाओं का इस्तेमाल करने के लिए, तय किए गए mapId के साथ map:mapId एक्सएमएल एट्रिब्यूट जोड़ें. नीचे दिया गया उदाहरण देखें:

<fragment
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:name="com.google.android.libraries.mapsplatform.transportation.consumer.view.ConsumerMapFragment"
    android:id="@+id/consumer_map_fragment"
    map:mapId="map-id"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

newInstance के साथ डाइनैमिक तौर पर

ConsumerMapFragment में newInstance के साथ क्लाउड पर मैप की स्टाइलिंग की सुविधाओं का इस्तेमाल करने के लिए, mapId फ़ील्ड को GoogleMapOptions पर सेट करें और GoogleMapOptions को newInstance पर पास करें. नीचे दिया गया उदाहरण देखें:

Java

public class SampleFragmentJ extends Fragment {

  @Override
  public View onCreateView(
      @NonNull LayoutInflater inflater,
      @Nullable ViewGroup container,
      @Nullable Bundle savedInstanceState) {

    final View view = inflater.inflate(R.layout.consumer_map_fragment, container, false);

    GoogleMapOptions optionsWithMapId = new GoogleMapOptions().mapId("map-id");
    ConsumerMapFragment consumerMapFragment = ConsumerMapFragment.newInstance(optionsWithMapId);

    getParentFragmentManager()
        .beginTransaction()
        .add(R.id.consumer_map_fragment, consumerMapFragment)
        .commit();

    consumerMapFragment.getConsumerGoogleMapAsync(
        new ConsumerMapReadyCallback() {
          @Override
          public void onConsumerMapReady(@NonNull ConsumerGoogleMap consumerGoogleMap) {
            // ...
          }
        });

    return view;
  }
}

Kotlin

class SampleFragment : Fragment() {
  override fun onCreateView(
    inflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?): View? {

    val view = inflater.inflate(R.layout.consumer_map_fragment, container, false)

    val optionsWithMapId = GoogleMapOptions().mapId("map-id")
    val consumerMapFragment = ConsumerMapFragment.newInstance(optionsWithMapId)

    parentFragmentManager
      .beginTransaction()
      .add(R.id.consumer_map_fragment, consumerMapFragment)
      .commit()

    consumerMapFragment.getConsumerGoogleMapAsync(
      object : ConsumerMapReadyCallback() {
        override fun onConsumerMapReady(consumerGoogleMap: ConsumerGoogleMap) {
          // ...
        }
      })

    return view
  }
}

JavaScript के ज़रिए, उपभोक्ता की यात्रा की जानकारी शेयर करने वाले मैप पर मैप स्टाइल लागू करने के लिए, JourneySharingMapView बनाते समय mapId और कोई भी अन्य mapOptions तय करें.

यहां दिए गए उदाहरणों में, मैप आईडी के साथ मैप स्टाइल लागू करने का तरीका बताया गया है.

JavaScript

const mapView = new google.maps.journeySharing.JourneySharingMapView({
  element: document.getElementById('map_canvas'),
  locationProviders: [locationProvider],
  mapOptions: {
    mapId: 'YOUR_MAP_ID'
  }
  // Any other styling options.
});

TypeScript

const mapView = new google.maps.journeySharing.JourneySharingMapView({
  element: document.getElementById('map_canvas'),
  locationProviders: [locationProvider],
  mapOptions: {
    mapId: 'YOUR_MAP_ID'
  }
  // Any other styling options.
});

अपने कोड में सीधे तौर पर मैप को स्टाइल करना

JourneySharingMapView बनाते समय, मैप के विकल्प सेट करके भी मैप की स्टाइल को पसंद के मुताबिक बनाया जा सकता है. यहां दिए गए उदाहरणों में, मैप के विकल्पों का इस्तेमाल करके मैप को स्टाइल करने का तरीका बताया गया है. मैप के कौनसे विकल्प सेट किए जा सकते हैं, इस बारे में ज़्यादा जानने के लिए, Google Maps JavaScript API के रेफ़रंस में mapOptions देखें.

JavaScript

const mapView = new google.maps.journeySharing.JourneySharingMapView({
  element: document.getElementById('map_canvas'),
  locationProviders: [locationProvider],
  mapOptions: {
    styles: [
      {
        "featureType": "road.arterial",
        "elementType": "geometry",
        "stylers": [
          { "color": "#CCFFFF" }
        ]
      }
    ]
  }
});

TypeScript

const mapView = new google.maps.journeySharing.JourneySharingMapView({
  element: document.getElementById('map_canvas'),
  locationProviders: [locationProvider],
  mapOptions: {
    styles: [
      {
        "featureType": "road.arterial",
        "elementType": "geometry",
        "stylers": [
          { "color": "#CCFFFF" }
        ]
      }
    ]
  }
});

यह कंट्रोल करना कि टास्क का डेटा, SDK टूल को दिखे या नहीं

मैप पर कुछ टास्क ऑब्जेक्ट दिखने के नियमों का इस्तेमाल करके, मैप पर कुछ टास्क ऑब्जेक्ट दिखने की सेटिंग को कंट्रोल किया जा सकता है.

टास्क का डेटा डिफ़ॉल्ट रूप से किसको दिखे

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

इस टेबल में, हर तरह के टास्क के लिए डिफ़ॉल्ट तौर पर दिखने की सेटिंग दिखती है. कई टास्क के लिए, दिखने की सेटिंग को पसंद के मुताबिक बनाया जा सकता है. हालांकि, सभी टास्क के लिए ऐसा नहीं किया जा सकता. टास्क के टाइप के बारे में ज़्यादा जानने के लिए, शेड्यूल किए गए टास्क गाइड में टास्क के टाइप देखें.

टास्क का टाइप डिफ़ॉल्ट व्यू क्या इसे पसंद के मुताबिक बनाया जा सकता है? ब्यौरा
उपलब्ध न होने वाले टास्क नहीं दिख रहा है नहीं इसका इस्तेमाल ड्राइवर के ब्रेक और ईंधन भरने के लिए किया जाता है. अगर डिलीवरी टास्क के लिए तय किए गए रास्ते में, वाहन के लिए कोई दूसरा स्टॉप भी है, तो उस स्टॉप को तब नहीं दिखाया जाता, जब उसमें सिर्फ़ ऐसे टास्क हों जो उपलब्ध नहीं हैं. डिलीवरी टास्क के लिए, डिलीवरी के अनुमानित समय और टास्क को पूरा करने के अनुमानित समय की जानकारी अब भी दिखती है.
वाहन से जुड़े टास्क खोलना दिख रहा है हां टास्क पूरा होने या रद्द होने पर, वह अन्य लोगों को नहीं दिखता. वाहन से जुड़े ऐसे टास्क जिन्हें पूरा नहीं किया गया है उन्हें अपनी पसंद के मुताबिक दिखाया जा सकता है. वाहन से जुड़े उन टास्क को पसंद के मुताबिक बनाएं जो पूरे नहीं किए गए हैं लेख पढ़ें.
वाहन के लिए बंद किए गए टास्क नहीं दिख रहा है नहीं वाहन से जुड़े पूरे हो चुके टास्क को अपनी पसंद के मुताबिक नहीं दिखाया जा सकता.

वाहन से जुड़े पूरे नहीं किए गए टास्क को अपनी पसंद के मुताबिक दिखाना

TaskTrackingInfo इंटरफ़ेस में, टास्क के कई डेटा एलिमेंट होते हैं. इन्हें Consumer SDK टूल की मदद से दिखाया जा सकता है.

पसंद के मुताबिक बनाए जा सकने वाले टास्क डेटा एलिमेंट

रास्ते की पॉलीलाइन

पहुंचने का अनुमानित समय

टास्क पूरा होने में लगने वाला अनुमानित समय

टास्क की जगह तक ड्राइव करने में बाकी दूरी

बाकी बचे स्टॉप की संख्या

वाहन की जगह

हर टास्क के लिए, टास्क की स्थिति देखने के विकल्प

Fleet Engine में टास्क बनाते या अपडेट करते समय, TaskTrackingViewConfig सेट करके, हर टास्क के हिसाब से दिखने की सेटिंग को पसंद के मुताबिक बनाया जा सकता है. टास्क एलिमेंट की विज़िबिलिटी तय करने के लिए, विज़िबिलिटी के इन विकल्पों का इस्तेमाल करें:

दिखने के विकल्प

बाकी बचे स्टॉप की संख्या

पहुंचने के अनुमानित समय तक का समय

ड्राइविंग की बाकी दूरी

मैसेज हमेशा दिखता है

कभी नहीं दिखता

उदाहरण के लिए, मान लें कि कस्टमाइज़ेशन के एक उदाहरण में, नीचे दी गई टेबल में दी गई शर्तों का इस्तेमाल करके, तीन डेटा एलिमेंट के दिखने की सेटिंग में बदलाव किया गया है. अन्य सभी एलिमेंट, दिखने के डिफ़ॉल्ट नियमों का पालन करते हैं.

जिस डेटा एलिमेंट में बदलाव करना है किसको दिखे मानदंड
रूट की पॉलीलाइन दिखाएं वाहन तीन स्टॉप के अंदर हो.
ईटीए दिखाएं ड्राइविंग की बाकी दूरी 5,000 मीटर से कम हो.
बाकी बचे स्टॉप की संख्या कभी न दिखाएं वाहन तीन स्टॉप के अंदर हो.

इस कॉन्फ़िगरेशन को यहां दिए गए उदाहरण में दिखाया गया है:

"taskTrackingViewConfig": {
  "routePolylinePointsVisibility": {
    "remainingStopCountThreshold": 3
  },
  "estimatedArrivalTimeVisibility": {
    "remainingDrivingDistanceMetersThreshold": 5000
  },
  "remainingStopCountVisibility": {
    "never": true
  }
}

रास्ते की पॉलीलाइन और वाहन की जगह की जानकारी दिखने के नियम

रास्ते के पॉलीलाइन तब तक नहीं दिख सकते, जब तक वाहन की जगह भी दिख रही हो. ऐसा न होने पर, पॉलीलाइन के आखिर में वाहन की जगह का अनुमान लगाया जा सकता है.

इन दिशा-निर्देशों की मदद से, रास्ते की पॉलीलाइन और वाहन की जगह की जानकारी दिखाने के विकल्पों के लिए मान्य कॉम्बिनेशन दिया जा सकता है.

प्रॉडक्ट की जानकारी दिखाने के विकल्प प्रॉडक्ट दिखने की शर्त दिशा-निर्देश
रास्ते के पॉलीलाइन के विकल्प, हमेशा दिखने के लिए सेट किए गए हैं. गाड़ी की जगह की जानकारी को हमेशा दिखने के लिए सेट करें.
गाड़ी की जगह की जानकारी 'कभी नहीं दिखे' पर सेट हो. रास्ते के पॉलीलाइन को 'कभी नहीं दिखें' पर सेट करें.
'किसको दिखे' सेटिंग के ये विकल्प हैं:
  • बाकी बचे स्टॉप की संख्या
  • ईटीए तक का समय
  • ड्राइविंग की बाकी दूरी

रास्ते के पॉलीलाइन विकल्पों को, वाहन की जगह के लिए सेट की गई वैल्यू से कम या उसके बराबर पर सेट करें. उदाहरण के लिए:

    "taskTrackingViewConfig": {
      "routePolylinePointsVisibility": {
        "remainingStopCountThreshold": 3
      },
      "vehicleLocationVisibility": {
        "remainingStopCountThreshold": 5
      },
    }
    
'किसको दिखे' सेटिंग के अलग-अलग विकल्प प्रॉडक्ट के दिखने की शर्तें दिशा-निर्देश
गाड़ी की जगह की जानकारी दिख रही हो

ऐसा सिर्फ़ तब होता है, जब वाहन की जगह की जानकारी और पॉलीलाइन दिखने के विकल्प, दोनों चालू हों. उदाहरण के लिए:

  "taskTrackingViewConfig": {
    "routePolylinePointsVisibility": {
      "remainingStopCountThreshold": 3
    },
    "vehicleLocationVisibility": {
      "remainingDrivingDistanceMetersThreshold": 3000
    },
  }

इस उदाहरण में, वाहन की जगह सिर्फ़ तब दिखती है, जब बचे हुए स्टॉप की संख्या कम से कम तीन हो और बचे हुए सफ़र की दूरी कम से कम 3,000 मीटर हो.

अपने-आप फ़िट होने की सुविधा बंद करना

अपने-आप फ़िट होने की सुविधा बंद करके, मैप को वाहन और अनुमानित रास्ते के हिसाब से, व्यूपोर्ट को अपने-आप फ़िट होने से रोका जा सकता है. यहां दिए गए उदाहरण में, सफ़र की जानकारी शेयर करने वाले मैप व्यू को कॉन्फ़िगर करते समय, अपने-आप फ़िट होने की सुविधा को बंद करने का तरीका बताया गया है.

JavaScript

const mapView = new
    google.maps.journeySharing.JourneySharingMapView({
  element: document.getElementById('map_canvas'),
  locationProviders: [locationProvider],
  automaticViewportMode:
      google.maps.journeySharing
          .AutomaticViewportMode.NONE,
  ...
});

TypeScript

const mapView = new
    google.maps.journeySharing.JourneySharingMapView({
  element: document.getElementById('map_canvas'),
  locationProviders: [locationProvider],
  automaticViewportMode:
      google.maps.journeySharing
          .AutomaticViewportMode.NONE,
  ...
});

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