JavaScript फ़्लीट ट्रैकिंग लाइब्रेरी की मदद से आप रीयल-टाइम में अपने बेड़े में मौजूद वाहनों की जगह देख सकते हैं. इस लाइब्रेरी में, डिलीवरी एपीआई का इस्तेमाल किया गया है. इससे डिलीवरी वाहनों और टास्क को विज़ुअलाइज़ करने की सुविधा मिलती है. JavaScript शिपमेंट ट्रैकिंग लाइब्रेरी की तरह, इसमें एक JavaScript मैप कॉम्पोनेंट होता है, जो फ़्लीट इंजन से कनेक्ट करने के लिए किसी मानक google.maps.Map
इकाई और डेटा कॉम्पोनेंट का ड्रॉप-इन रिप्लेसमेंट होता है.
घटक
JavaScript फ़्लीट ट्रैकिंग लाइब्रेरी में डिलीवरी करने वाले वाहनों और स्टॉप के विज़ुअलाइज़ेशन के लिए कॉम्पोनेंट दिए गए हैं. साथ ही, ईटीए या डिलीवरी से दूरी के लिए रॉ डेटा फ़ीड भी दी गई है.
फ़्लीट ट्रैकिंग मैप व्यू
फ़्लीट ट्रैकिंग मैप व्यू कॉम्पोनेंट, वाहनों और टास्क की जगह को विज़ुअलाइज़ करता है. अगर किसी वाहन का रास्ता पता है, तो मैप व्यू कॉम्पोनेंट, बताए गए रास्ते पर चलने पर उस वाहन का ऐनिमेशन दिखाता है.
जगह की जानकारी देने वाली कंपनियां
जगह की जानकारी देने वाली कंपनियां, फ़्लीट इंजन में सेव की गई जानकारी के साथ काम करती हैं. इसकी मदद से, ट्रैक किए गए ऑब्जेक्ट की जगह की जानकारी को जर्नी शेयरिंग मैप में भेजा जाता है.
डिलीवरी के लिए वाहन की जगह की जानकारी देने वाली कंपनी
डिलीवरी करने वाले वाहन की जगह की जानकारी देने वाली कंपनी, डिलीवरी वाले वाहन की जगह की जानकारी दिखाती है. इसमें वाहन की जगह और डिलीवरी वाहन से किए गए काम की जानकारी होती है.
डिलीवरी की जगह की जानकारी देने वाली कंपनी
वाहन की डिलीवरी की जगह की जानकारी देने वाली कंपनी, कई वाहनों की जगह की जानकारी दिखाती है. खास वाहनों या जगहों को फ़िल्टर किया जा सकता है या पूरे फ़्लीट को दिखाया जा सकता है.
ट्रैक की गई जगहों की जानकारी दिखाने को कंट्रोल करें
इस सेक्शन में, जगह उपलब्ध कराने वाली कंपनी के फ़्लीट इंजन के लिए, मैप पर ट्रैक की गई जगह की जानकारी से जुड़े ऑब्जेक्ट दिखाने के नियमों के बारे में बताया गया है. पसंद के मुताबिक या खोजी गई जगह की जानकारी देने वाली कंपनियां, 'किसको दिखे' सेटिंग के नियमों में बदलाव कर सकती हैं.
डिलीवरी करने वाले वाहन
डिलीवरी वाहन, Fleet Engine में बनते ही दिख जाता है. वह अपने टास्क पर ध्यान दिए बिना, पूरे रास्ते में दिखता है.
टास्क के लिए जगह के मार्कर
प्लान किए गए वाहन स्टॉप, मैप पर वाहन के स्टॉप मार्कर के तौर पर दिखाए जाते हैं. पूरे हो चुके टास्क के लिए मार्कर, वाहन के पहले से तय स्टॉप से अलग स्टाइल में दिखाए जाते हैं.
टास्क के नतीजों की जगह, टास्क के नतीजे दिखाने वाले मार्कर के साथ दिखाई जाती है. हॉप वाले नतीजे वाले टास्क, सफल टास्क मार्कर के साथ दिखते हैं. अन्य सभी टास्क, पूरे न हो पाने वाले टास्क मार्कर के साथ दिखते हैं.
JavaScript फ़्लीट ट्रैकिंग लाइब्रेरी का इस्तेमाल करना शुरू करें
JavaScript फ़्लीट ट्रैकिंग लाइब्रेरी का इस्तेमाल करने से पहले पक्का करें कि आप फ़्लीट इंजन के बारे में जानते हैं और एपीआई पासकोड पाने के बारे में जानते हैं. इसके बाद, टास्क आईडी और डिलीवरी वाले वाहन के आईडी पर दावा करें.
टास्क आईडी और डिलीवरी में लगने वाले वाहन के आईडी पर दावा करें
डिलीवरी में वाहन की जगह की जानकारी देने वाली कंपनी का इस्तेमाल करके, डिलीवरी करने वाले वाहनों को ट्रैक करने के लिए, टास्क आईडी और डिलीवरी वाले वाहन के आईडी से जुड़ा दावा करके, JSON वेब टोकन (JWT) बनाएं.
JWT पेलोड बनाने के लिए, अनुमति देने वाले सेक्शन में taskid और deliveryvehicleid की वैल्यू के साथ अतिरिक्त दावा जोड़ें. साथ ही, हर कुंजी की वैल्यू को * पर सेट करें. टोकन, Fleet Engine Service Super User Cloud IAM की भूमिका का इस्तेमाल करके बनाया जाना चाहिए. ध्यान दें कि इससे फ़्लीट इंजन की इकाइयां बनाने, पढ़ने, और उनमें बदलाव करने की अनुमति मिलती है. साथ ही, इसे सिर्फ़ भरोसेमंद उपयोगकर्ताओं के साथ शेयर किया जाना चाहिए.
इस उदाहरण में, वाहन और टास्क के हिसाब से ट्रैक करने के लिए टोकन बनाने का तरीका बताया गया है:
{
"alg": "RS256",
"typ": "JWT",
"kid": "private_key_id_of_consumer_service_account"
}
.
{
"iss": "superuser@yourgcpproject.iam.gserviceaccount.com",
"sub": "superuser@yourgcpproject.iam.gserviceaccount.com",
"aud": "https://fleetengine.googleapis.com/",
"iat": 1511900000,
"exp": 1511903600,
"scope": "https://www.googleapis.com/auth/xapi",
"authorization": {
"taskid": "*",
"deliveryvehicleid": "*",
}
}
पुष्टि करने वाला टोकन फ़ेच करने वाला टूल बनाएं
अपने प्रोजेक्ट के सेवा खाते के सर्टिफ़िकेट का इस्तेमाल करके, सर्वर पर सही दावों के साथ मिठा हुआ टोकन पाने के लिए, पुष्टि करने वाला टोकन फ़ेचर बनाया जा सकता है. यह ज़रूरी है कि आप अपने सर्वर पर सिर्फ़ टोकन को मिंट करें और अपने सर्टिफ़िकेट को किसी भी क्लाइंट के साथ शेयर न करें. ऐसा न करने पर, आपके सिस्टम की सुरक्षा को खतरा होगा.
फ़ेचर को प्रॉमिस में रैप करके, दो फ़ील्ड के साथ डेटा स्ट्रक्चर दिखाना चाहिए:
token
स्ट्रिंग.- संख्या
expiresInSeconds
. फ़ेच करने के बाद, टोकन की समयसीमा इतने समय में खत्म हो जाती है.
इनमें से किसी भी स्थिति में, JavaScript फ़्लीट ट्रैकिंग लाइब्रेरी, ऑथेंटिकेशन टोकन फ़ेचर के ज़रिए एक टोकन का अनुरोध करती है:
- इसका कोई मान्य टोकन नहीं होता. जैसे, नए पेज लोड होने पर फ़ेचर को कॉल न किया गया हो या फ़ेच करने वाला, टोकन के साथ वापस न आया हो.
- पिछली बार फ़ेच किए गए टोकन की समयसीमा खत्म हो चुकी है.
- पहले फ़ेच किए गए टोकन की समयसीमा खत्म होने के एक मिनट के अंदर है.
इस विकल्प को न चुनने पर, लाइब्रेरी पहले जारी किए गए और मान्य टोकन का इस्तेमाल करती है. साथ ही, फ़ेचर को कॉल नहीं करती.
नीचे दिए गए उदाहरण में, पुष्टि करने वाला टोकन फ़ेचर बनाने का तरीका बताया गया है:
JavaScript
function authTokenFetcher(options) {
// options is a record containing two keys called
// serviceType and context. The developer should
// generate the correct SERVER_TOKEN_URL and request
// based on the values of these fields.
const response = await fetch(SERVER_TOKEN_URL);
if (!response.ok) {
throw new Error(response.statusText);
}
const data = await response.json();
return {
token: data.Token,
expiresInSeconds: data.ExpiresInSeconds
};
}
TypeScript
function authTokenFetcher(options: {
serviceType: google.maps.journeySharing.FleetEngineServiceType,
context: google.maps.journeySharing.AuthTokenContext,
}): Promise<google.maps.journeySharing.AuthToken> {
// The developer should generate the correct
// SERVER_TOKEN_URL based on options.
const response = await fetch(SERVER_TOKEN_URL);
if (!response.ok) {
throw new Error(response.statusText);
}
const data = await response.json();
return {
token: data.token,
expiresInSeconds: data.expiration_timestamp_ms - Date.now(),
};
}
टोकन को मिंट करने के लिए, सर्वर साइड एंडपॉइंट को लागू करते समय, इन बातों का ध्यान रखें:
- एंडपॉइंट को टोकन के लिए, खत्म होने का समय दिखाना चाहिए. ऊपर दिए गए उदाहरण में, इसे
data.ExpiresInSeconds
के तौर पर दिया गया है. - पुष्टि करने वाले टोकन को फ़ेच करने वाले टूल को, लाइब्रेरी में समय-सीमा खत्म होने का समय (सेकंड में, फ़ेच करने के समय से) पास करना होगा, जैसा कि उदाहरण में दिखाया गया है.
- SERVER_TOKEN_URL, आपके बैकएंड को लागू करने के तरीके पर निर्भर करता है. ये ऐप्लिकेशन के बैकएंड के सैंपल के यूआरएल हैं:
- https://
SERVER_URL
/token/delivery_driver/DELIVERY_VEHICLE_ID
- https://
SERVER_URL
/token/delivery_consumer/TRACKING_ID
- https://
SERVER_URL
/token/fleet_reader
- https://
एचटीएमएल से मैप लोड करें
नीचे दिए गए उदाहरण में, किसी खास यूआरएल से JavaScript जर्नी शेयरिंग लाइब्रेरी को लोड करने का तरीका बताया गया है. एपीआई लोड होने के बाद, callback पैरामीटर initMap
फ़ंक्शन को एक्ज़ीक्यूट करता है. defer एट्रिब्यूट से, एपीआई लोड होने के दौरान ब्राउज़र आपके पेज के बाकी हिस्सों को रेंडर करना जारी रखता है.
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap&libraries=journeySharing" defer></script>
डिलीवरी वाहन को फ़ॉलो करें
इस सेक्शन में डिलीवरी वाहन को फ़ॉलो करने के लिए JavaScript फ़्लीट ट्रैकिंग लाइब्रेरी का इस्तेमाल करने का तरीका बताया गया है. अपना कोड चलाने से पहले, स्क्रिप्ट टैग में दिए गए कॉलबैक फ़ंक्शन से लाइब्रेरी को लोड करना न भूलें.
डिलीवरी वाहन की जगह की जानकारी देने वाली कंपनी को इंस्टैंशिएट करें
JavaScript फ़्लीट ट्रैकिंग लाइब्रेरी, फ़्लीट इंजन डिलीवरी एपीआई के लिए जगह की जानकारी देने वाली कंपनी को पहले से तय करती है. इसे इंस्टैंशिएट करने के लिए, अपने प्रोजेक्ट आईडी और टोकन फ़ैक्ट्री के रेफ़रंस का इस्तेमाल करें.
JavaScript
locationProvider =
new google.maps.journeySharing
.FleetEngineDeliveryVehicleLocationProvider({
projectId,
authTokenFetcher,
// Optionally, you may specify
// deliveryVehicleId to immediately start
// tracking.
deliveryVehicleId: 'your-delivery-id',
});
TypeScript
locationProvider =
new google.maps.journeySharing
.FleetEngineDeliveryVehicleLocationProvider({
projectId,
authTokenFetcher,
// Optionally, you may specify
// deliveryVehicleId to immediately start
// tracking.
deliveryVehicleId: 'your-delivery-id',
});
मैप व्यू शुरू करें
JavaScript यात्रा शेयरिंग लाइब्रेरी लोड होने के बाद, मैप व्यू को शुरू करें और उसे एचटीएमएल पेज में जोड़ें. आपके पेज में एक <div> एलिमेंट होना चाहिए जिसमें मैप व्यू शामिल हो. नीचे दिए गए उदाहरण में, <div> एलिमेंट को map_canvas नाम दिया गया है.
JavaScript
const mapView = new
google.maps.journeySharing.JourneySharingMapView({
element: document.getElementById('map_canvas'),
locationProviders: [locationProvider],
// Styling customizations; see below.
vehicleMarkerSetup: vehicleMarkerSetup,
anticipatedRoutePolylineSetup:
anticipatedRoutePolylineSetup,
// Any undefined styling options will use defaults.
});
// If you did not specify a delivery vehicle ID in the
// location provider constructor, you may do so here.
// Location tracking will start as soon as this is set.
locationProvider.deliveryVehicleId
= 'your-delivery-vehicle-id';
// Give the map an initial viewport to allow it to
// initialize; otherwise the 'ready' event above may
// not fire. The user also has access to the mapView
// object to customize as they wish.
mapView.map.setCenter('Times Square, New York, NY');
mapView.map.setZoom(14);
TypeScript
const mapView = new
google.maps.journeySharing.JourneySharingMapView({
element: document.getElementById('map_canvas'),
locationProviders: [locationProvider],
// Styling customizations; see below.
vehicleMarkerSetup: vehicleMarkerSetup,
anticipatedRoutePolylineSetup:
anticipatedRoutePolylineSetup,
// Any undefined styling options will use defaults.
});
// If you did not specify a delivery vehicle ID in the
// location provider constructor, you may do so here.
// Location tracking will start as soon as this is set.
locationProvider.deliveryVehicleId
= 'your-delivery-vehicle-id';
// Give the map an initial viewport to allow it to
// initialize; otherwise the 'ready' event above may
// not fire. The user also has access to the mapView
// object to customize as they wish.
mapView.map.setCenter('Times Square, New York, NY');
mapView.map.setZoom(14);
बदलाव से जुड़े इवेंट सुनना
जगह की जानकारी देने वाले ऐप्लिकेशन का इस्तेमाल करके, deliveryVehicle
ऑब्जेक्ट से किसी टास्क के बारे में मेटा जानकारी हासिल की जा सकती है. मेटा जानकारी में, ETA और वाहन के अगली पिकअप या उतरने से पहले की दूरी शामिल होती है. मेटा जानकारी में किए जाने वाले बदलाव, update इवेंट ट्रिगर करते हैं. नीचे दिए गए उदाहरण में,
बदलाव के इन इवेंट को सुनने का तरीका बताया गया है.
JavaScript
locationProvider.addListener('update', e => {
// e.deliveryVehicle contains data that may be
// useful to the rest of the UI.
if (e.deliveryVehicle) {
console.log(e.deliveryVehicle.remainingDuration);
}
});
TypeScript
locationProvider.addListener('update',
(e: google.maps.journeySharing.FleetEngineDeliveryVehicleLocationProviderUpdateEvent) => {
// e.deliveryVehicle contains data that may be
// useful to the rest of the UI.
if (e.deliveryVehicle) {
console.log(e.deliveryVehicle.remainingDuration);
}
});
गड़बड़ियां सुनें
डिलीवरी में लगने वाले वाहन की जानकारी का अनुरोध करने पर, एसिंक्रोनस तरीके से होने वाली गड़बड़ियां. नीचे दिए गए उदाहरण में, गड़बड़ियों को हैंडल करने के लिए इन इवेंट को सुनने का तरीका बताया गया है.
JavaScript
locationProvider.addListener('error', e => {
// e.error is the error that triggered the event.
console.error(e.error);
});
TypeScript
locationProvider.addListener('error', (e: google.maps.ErrorEvent) => {
// e.error is the error that triggered the event.
console.error(e.error);
});
ट्रैकिंग रोकें
जगह की जानकारी देने वाली कंपनी को डिलीवरी वाहन को ट्रैक करने से रोकने के लिए, जगह की जानकारी देने वाली कंपनी से डिलीवरी वाहन का आईडी हटा दें.
JavaScript
locationProvider.deliveryVehicleId = '';
TypeScript
locationProvider.deliveryVehicleId = '';
मैप व्यू से, जगह की जानकारी देने वाली कंपनी को हटाएं
नीचे दिए गए उदाहरण में, मैप व्यू से जगह की जानकारी देने वाली कंपनी को हटाने का तरीका बताया गया है.
JavaScript
mapView.removeLocationProvider(locationProvider);
TypeScript
mapView.removeLocationProvider(locationProvider);
डिलीवरी फ़्लीट देखना
इस सेक्शन में, डिलीवरी फ़्लीट को देखने के लिए JavaScript की ऐक्टिविटी शेयर करने की लाइब्रेरी का इस्तेमाल करने का तरीका बताया गया है. अपना कोड चलाने से पहले, स्क्रिप्ट टैग में दिए गए कॉलबैक फ़ंक्शन से लाइब्रेरी को लोड करना न भूलें.
डिलीवरी फ़्लीट की जगह की जानकारी देने वाली कंपनी को इंस्टैंशिएट करें
JavaScript फ़्लीट ट्रैकिंग लाइब्रेरी, जगह की जानकारी देने वाली उस कंपनी को पहले से तय करती है जो FleetEngine डिलीवरी API से कई वाहनों को फ़ेच करती है. इसे इंस्टैंशिएट करने के लिए, अपने प्रोजेक्ट आईडी और टोकन फ़ेचर के रेफ़रंस का इस्तेमाल करें.
JavaScript
locationProvider =
new google.maps.journeySharing
.FleetEngineDeliveryFleetLocationProvider({
projectId,
authTokenFetcher,
// Optionally, specify location bounds to
// limit which delivery vehicles are
// retrieved and immediately start tracking.
locationRestriction: {
north: 37.3,
east: -121.8,
south: 37.1,
west: -122,
},
// Optionally, specify a filter to limit
// which delivery vehicles are retrieved.
deliveryVehicleFilter:
'attributes.foo = "bar" AND attributes.baz = "qux"',
});
TypeScript
locationProvider =
new google.maps.journeySharing
.FleetEngineDeliveryFleetLocationProvider({
projectId,
authTokenFetcher,
// Optionally, specify location bounds to
// limit which delivery vehicles are
// retrieved and immediately start tracking.
locationRestriction: {
north: 37.3,
east: -121.8,
south: 37.1,
west: -122,
},
// Optionally, specify a filter to limit
// which delivery vehicles are retrieved.
deliveryVehicleFilter:
'attributes.foo = "bar" AND attributes.baz = "qux"',
});
deliveryVehicleFilter
ऐसी क्वेरी के बारे में बताता है जिसका इस्तेमाल, मैप पर दिखाए गए वाहनों को फ़िल्टर करने के लिए किया जाता है. यह फ़िल्टर सीधे Fleet Engine को पास किया जाता है. इस्तेमाल किए जा सकने वाले फ़ॉर्मैट के बारे में जानने के लिए ListDeliveryVehiclesRequest.filter
पर जाएं.
locationRestriction
उस इलाके को सीमित करता है जहां मैप पर वाहन दिखाना है.
इससे यह भी कंट्रोल किया जाता है कि जगह की जानकारी ट्रैक करने की सुविधा चालू है या नहीं. जब तक इसे सेट नहीं किया जाता, तब तक जगह की ट्रैकिंग शुरू नहीं होगी.
जगह की जानकारी देने वाला टूल बन जाने के बाद, मैप व्यू शुरू करें.
मैप व्यूपोर्ट का इस्तेमाल करके जगह की पाबंदी सेट करें
मैप व्यू में दिख रहे इलाके से मैच करने के लिए, locationRestriction
के बाउंड को कॉन्फ़िगर किया जा सकता है.
JavaScript
google.maps.event.addListenerOnce(
mapView.map, 'bounds_changed', () => {
const bounds = mapView.map.getBounds();
if (bounds) {
// If you did not specify a location restriction in the
// location provider constructor, you may do so here.
// Location tracking will start as soon as this is set.
locationProvider.locationRestriction = bounds;
}
});
TypeScript
google.maps.event.addListenerOnce(
mapView.map, 'bounds_changed', () => {
const bounds = mapView.map.getBounds();
if (bounds) {
// If you did not specify a location restriction in the
// location provider constructor, you may do so here.
// Location tracking will start as soon as this is set.
locationProvider.locationRestriction = bounds;
}
});
बदलाव से जुड़े इवेंट सुनना
जगह की जानकारी देने वाले ऐप्लिकेशन का इस्तेमाल करके, deliveryVehicles
ऑब्जेक्ट से फ़्लीट के बारे में मेटा जानकारी हासिल की जा सकती है. मुख्य जानकारी में वाहन की प्रॉपर्टी शामिल हैं. जैसे, नेविगेशन की स्थिति, बची हुई दूरी, और कस्टम एट्रिब्यूट. ज़्यादा जानकारी के लिए, पहचान फ़ाइल से जुड़ा दस्तावेज़ देखें. मेटा जानकारी में बदलाव करने से, update इवेंट ट्रिगर होता है. नीचे दिए गए उदाहरण में, बदलाव से जुड़े इन इवेंट को सुनने का तरीका बताया गया है.
JavaScript
locationProvider.addListener('update', e => {
// e.deliveryVehicles contains data that may be
// useful to the rest of the UI.
if (e.deliveryVehicles) {
for (vehicle of e.deliveryVehicles) {
console.log(vehicle.remainingDistanceMeters);
}
}
});
TypeScript
locationProvider.addListener('update',
(e: google.maps.journeySharing.FleetEngineDeliveryFleetLocationProviderUpdateEvent) => {
// e.deliveryVehicles contains data that may be
// useful to the rest of the UI.
if (e.deliveryVehicles) {
for (vehicle of e.deliveryVehicles) {
console.log(vehicle.remainingDistanceMeters);
}
}
});
गड़बड़ियां सुनें
डिलीवरी फ़्लीट की जानकारी का अनुरोध करने पर एसिंक्रोनस रूप से पैदा होने वाली गड़बड़ियां, गड़बड़ी वाले इवेंट ट्रिगर करती हैं. इन इवेंट को सुनने का तरीका दिखाने वाले उदाहरणों के लिए, गड़बड़ियों को सुनें देखें.
ट्रैकिंग रोकें
जगह की जानकारी देने वाली कंपनी को डिलीवरी फ़्लीट ट्रैक करने से रोकने के लिए, जगह की जानकारी देने वाली कंपनी की सीमाओं को शून्य पर सेट करें.
JavaScript
locationProvider.locationRestriction = null;
TypeScript
locationProvider.locationRestriction = null;
मैप व्यू से, जगह की जानकारी देने वाली कंपनी को हटाएं
नीचे दिए गए उदाहरण में, मैप व्यू से जगह की जानकारी देने वाली कंपनी को हटाने का तरीका बताया गया है.
JavaScript
mapView.removeLocationProvider(locationProvider);
TypeScript
mapView.removeLocationProvider(locationProvider);
डिलीवरी फ़्लीट देखते समय, डिलीवरी वाहन को ट्रैक करें
किसी फ़्लीट को देखते समय, डिलीवरी करने वाले किसी खास वाहन का रूट और आने वाले टास्क दिखाए जा सकते हैं. ऐसा करने के लिए, डिलीवरी फ़्लीट लोकेशन प्रोवाइडर और डिलीवरी वाहन की जगह की जानकारी देने वाली कंपनी, दोनों को इंस्टैंशिएट करें और इन दोनों को मैप व्यू में जोड़ें:
JavaScript
deliveryFleetLocationProvider =
new google.maps.journeySharing
.FleetEngineDeliveryFleetLocationProvider({
projectId,
authTokenFetcher,
// Optionally, specify location bounds to
// limit which delivery vehicles are
// retrieved and immediately start tracking.
locationRestriction: {
north: 37.3,
east: -121.8,
south: 37.1,
west: -122,
},
// Optionally, specify a filter to limit
// which delivery vehicles are retrieved.
deliveryVehicleFilter:
'attributes.foo = "bar" AND attributes.baz = "qux"',
});
deliveryVehicleLocationProvider =
new google.maps.journeySharing
.FleetEngineDeliveryVehicleLocationProvider({
projectId,
authTokenFetcher
});
const mapView = new
google.maps.journeySharing.JourneySharingMapView({
element: document.getElementById('map_canvas'),
locationProviders: [
deliveryFleetLocationProvider,
deliveryVehicleLocationProvider,
],
// Any other options
});
TypeScript
deliveryFleetLocationProvider =
new google.maps.journeySharing
.FleetEngineDeliveryFleetLocationProvider({
projectId,
authTokenFetcher,
// Optionally, specify location bounds to
// limit which delivery vehicles are
// retrieved and immediately start tracking.
locationRestriction: {
north: 37.3,
east: -121.8,
south: 37.1,
west: -122,
},
// Optionally, specify a filter to limit
// which delivery vehicles are retrieved.
deliveryVehicleFilter:
'attributes.foo = "bar" AND attributes.baz = "qux"',
});
deliveryVehicleLocationProvider =
new google.maps.journeySharing
.FleetEngineDeliveryVehicleLocationProvider({
projectId,
authTokenFetcher
});
const mapView = new
google.maps.journeySharing.JourneySharingMapView({
element: document.getElementById('map_canvas'),
locationProviders: [
deliveryFleetLocationProvider,
deliveryVehicleLocationProvider,
],
// Any other options
});
डिलीवरी की जगह पर डिलीवरी करने वाली कंपनी, डिलीवरी करने वाले वाहनों को मैप पर दिखाना शुरू कर देती है. जब डिलीवरी वाहन का मार्कर क्लिक हो जाए, तो डिलीवरी वाहन की जगह बताने वाली कंपनी को उस समय ट्रैक करने के लिए मार्कर कस्टमाइज़ेशन का इस्तेमाल करें:
JavaScript
// Specify the customization function either separately, or as a field in
// the options for the delivery fleet location provider constructor.
deliveryFleetLocationProvider.deliveryVehicleMarkerCustomization =
(params) => {
if (params.isNew) {
params.marker.addListener('click', () => {
// params.vehicle.name follows the format
// "providers/{provider}/deliveryVehicles/{vehicleId}".
// Only the vehicleId portion is used for the delivery vehicle
// location provider.
deliveryVehicleLocationProvider.deliveryVehicleId =
params.vehicle.name.split('/').pop();
});
}
};
TypeScript
// Specify the customization function either separately, or as a field in
// the options for the delivery fleet location provider constructor.
deliveryFleetLocationProvider.deliveryVehicleMarkerCustomization =
(params: google.maps.journeySharing.DeliveryVehicleMarkerCustomizationFunctionParams) => {
if (params.isNew) {
params.marker.addListener('click', () => {
// params.vehicle.name follows the format
// "providers/{provider}/deliveryVehicles/{vehicleId}".
// Only the vehicleId portion is used for the delivery vehicle
// location provider.
deliveryVehicleLocationProvider.deliveryVehicleId =
params.vehicle.name.split('/').pop();
});
}
};
एक ही वाहन के लिए दो मार्कर रेंडर होने से रोकने के लिए, डिलीवरी में वाहन की जगह की जानकारी देने वाली कंपनी का मार्कर छिपाएं:
JavaScript
// Specify the customization function either separately, or as a field in
// the options for the delivery vehicle location provider constructor.
deliveryVehicleLocationProvider.deliveryVehicleMarkerCustomization =
(params) => {
if (params.isNew) {
params.marker.setVisible(false);
}
};
TypeScript
// Specify the customization function either separately, or as a field in
// the options for the delivery vehicle location provider constructor.
deliveryVehicleLocationProvider.deliveryVehicleMarkerCustomization =
(params: deliveryVehicleMarkerCustomizationFunctionParams) => {
if (params.isNew) {
params.marker.setVisible(false);
}
};
बुनियादी मैप के लुक और स्टाइल को पसंद के मुताबिक बनाएं
मैप कॉम्पोनेंट के लुक और स्टाइल को पसंद के मुताबिक बनाने के लिए, क्लाउड-आधारित टूल का इस्तेमाल करके या सीधे कोड में विकल्प सेट करके, अपने मैप को स्टाइल दें.
क्लाउड-आधारित मैप स्टाइलिंग का इस्तेमाल करें
क्लाउड-आधारित मैप स्टाइलिंग की मदद से, Google Cloud Console पर Google Maps का इस्तेमाल करने वाले किसी भी ऐप्लिकेशन के लिए मैप स्टाइल बनाने और उनमें बदलाव करने की सुविधा मिलती है. इसके लिए, आपको अपने कोड में कोई बदलाव करने की ज़रूरत नहीं होती.
मैप के स्टाइल, आपके Cloud प्रोजेक्ट में मैप आईडी के तौर पर सेव किए जाते हैं. अपने JavaScript फ़्लीट ट्रैकिंग मैप पर कोई स्टाइल लागू करने के लिए, JourneySharingMapView
बनाते समय mapId
तय करें. JourneySharingMapView
इंस्टैंशिएट होने के बाद, mapId
फ़ील्ड को बदला या जोड़ा नहीं जा सकता. यहां दिए गए उदाहरण में, पहले से बनाए गए मैप आईडी को मैप आईडी की मदद से चालू करने का तरीका बताया गया है.
JavaScript
const mapView = new google.maps.journeySharing.JourneySharingMapView({
element: document.getElementById('map_canvas'),
locationProviders: [locationProvider],
mapOptions: {
mapId: 'YOUR_MAP_ID'
}
});
TypeScript
const mapView = new google.maps.journeySharing.JourneySharingMapView({
element: document.getElementById('map_canvas'),
locationProviders: [locationProvider],
mapOptions: {
mapId: 'YOUR_MAP_ID'
}
});
कोड पर आधारित मैप स्टाइलिंग का इस्तेमाल करें
मैप स्टाइल को पसंद के मुताबिक बनाने का एक और तरीका है, JourneySharingMapView
बनाते समय 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" }
]
}
]
}
});
मार्कर की पसंद के मुताबिक बनाने की सुविधा का इस्तेमाल करना
JavaScript फ़्लीट ट्रैकिंग लाइब्रेरी की मदद से, मैप में जोड़े गए मार्कर के रंग-रूप को कस्टमाइज़ किया जा सकता है. इसके लिए आपको मार्कर कस्टमाइज़ेशन तय करना होगा, जिसे फ़्लीट ट्रैकिंग लाइब्रेरी मैप पर मार्कर जोड़ने से पहले और हर मार्कर अपडेट के साथ लागू करती है.
किसी MarkerOptions
ऑब्जेक्ट को अपने हिसाब से सेट करना सबसे आसान होता है. इस ऑब्जेक्ट को एक ही तरह के सभी मार्कर पर लागू किया जाएगा. ऑब्जेक्ट में बताए गए बदलाव, हर मार्कर के बनने के बाद लागू होते हैं. ये बदलाव सभी डिफ़ॉल्ट विकल्पों को ओवरराइट कर देते हैं.
कस्टमाइज़ेशन फ़ंक्शन तय करना ज़्यादा बेहतर विकल्प है. कस्टमाइज़ेशन फ़ंक्शन से डेटा के आधार पर मार्कर की स्टाइल बनाई जा सकती है. साथ ही, मार्कर में क्लिक मैनेज करने जैसे इंटरैक्शन शामिल किए जा सकते हैं. खास तौर पर, फ़्लीट ट्रैकिंग मार्कर से दिखाए जाने वाले ऑब्जेक्ट के टाइप के बारे में, कस्टमाइज़ेशन फ़ंक्शन को डेटा पास करता है: वाहन, स्टॉप या टास्क. इसके बाद, इससे मार्कर की स्टाइलिंग को मार्कर एलिमेंट की मौजूदा स्थिति के हिसाब से बदला जा सकता है. उदाहरण के लिए, बचे हुए स्टॉप की संख्या या टास्क का टाइप. यहां तक कि Fleet Engine से बाहर के सोर्स के डेटा से भी जॉइन किया जा सकता है और उस जानकारी के आधार पर मार्कर की स्टाइल तय की जा सकती है.
इसके अलावा, मार्कर की विज़िबिलिटी को फ़िल्टर करने के लिए, कस्टमाइज़ेशन फ़ंक्शन का इस्तेमाल किया जा सकता है.
ऐसा करने के लिए, मार्कर पर setVisible(false)
को कॉल करें.
हालांकि, हमारा सुझाव है कि परफ़ॉर्मेंस को बेहतर बनाने के लिए, लोकेशन प्रोवाइडर में, नेटिव फ़िल्टर का इस्तेमाल करें, जैसे कि FleetEngineDeliveryFleetLocationProvider.deliveryVehicleFilter
.
हालांकि, जब आपको फ़िल्टर करने के ज़्यादा फ़ंक्शन की ज़रूरत होती है, तो कस्टमाइज़ेशन फ़ंक्शन का इस्तेमाल करके फ़िल्टर करना लागू किया जा सकता है.
फ़्लीट ट्रैकिंग लाइब्रेरी से, ये कस्टमाइज़ेशन पैरामीटर मिलते हैं:
MarkerOptions
का इस्तेमाल करके मार्कर की स्टाइल बदलें
इस उदाहरण में, MarkerOptions
ऑब्जेक्ट के साथ वाहन के मार्कर की स्टाइल को कॉन्फ़िगर करने का तरीका बताया गया है. ऊपर दी गई सूची में मौजूद किसी भी मार्कर कस्टमाइज़ेशन पैरामीटर का इस्तेमाल करके, किसी भी मार्कर की स्टाइल को
पसंद के मुताबिक बनाने के लिए, इस पैटर्न को फ़ॉलो करें.
JavaScript
deliveryVehicleMarkerCustomization = {
cursor: 'grab'
};
TypeScript
deliveryVehicleMarkerCustomization = {
cursor: 'grab'
};
पसंद के मुताबिक बनाने वाले फ़ंक्शन का इस्तेमाल करके मार्कर की स्टाइल बदलें
इस उदाहरण में, वाहन के मार्कर की स्टाइल को कॉन्फ़िगर करने का तरीका बताया गया है. किसी भी मार्कर की स्टाइल को पसंद के मुताबिक बनाने के लिए, इस पैटर्न को अपनाएं. ऐसा करने के लिए, ऊपर दिए गए किसी भी मार्कर को पसंद के मुताबिक बनाने के पैरामीटर का इस्तेमाल करें.
JavaScript
deliveryVehicleMarkerCustomization =
(params) => {
var stopsLeft = params.vehicle.remainingVehicleJourneySegments.length;
params.marker.setLabel(`${stopsLeft}`);
};
TypeScript
deliveryVehicleMarkerCustomization =
(params: DeliveryVehicleMarkerCustomizationFunctionParams) => {
var stopsLeft = params.vehicle.remainingVehicleJourneySegments.length;
params.marker.setLabel(`${stopsLeft}`);
};
मार्कर में क्लिक हैंडलिंग जोड़ें
इस उदाहरण में, वाहन के मार्कर में क्लिक हैंडलिंग की सुविधा जोड़ने का तरीका बताया गया है. ऊपर दिए गए किसी भी मार्कर कस्टमाइज़ेशन पैरामीटर का इस्तेमाल करके, किसी भी मार्कर में क्लिक हैंडलिंग जोड़ने के लिए, इस पैटर्न को अपनाएं.
JavaScript
deliveryVehicleMarkerCustomization =
(params) => {
if (params.isNew) {
params.marker.addListener('click', () => {
// Perform desired action.
});
}
};
TypeScript
deliveryVehicleMarkerCustomization =
(params: DeliveryVehicleMarkerCustomizationFunctionParams) => {
if (params.isNew) {
params.marker.addListener('click', () => {
// Perform desired action.
});
}
};
दिखने वाले मार्कर को फ़िल्टर करें
इस उदाहरण में, यह फ़िल्टर करने का तरीका बताया गया है कि कौनसे वाहन मार्कर दिख रहे हैं. ऊपर दिए गए किसी भी मार्कर कस्टमाइज़ेशन पैरामीटर का इस्तेमाल करके, किसी भी मार्कर को फ़िल्टर करने के लिए, इस पैटर्न को अपनाएं.
JavaScript
deliveryVehicleMarkerCustomization =
(params) => {
var stopsLeft = params.vehicle.remainingVehicleJourneySegments.length;
if (stopsLeft > 10) {
params.marker.setVisible(false);
}
};
TypeScript
deliveryVehicleMarkerCustomization =
(params: DeliveryVehicleMarkerCustomizationFunctionParams) => {
var stopsLeft = params.vehicle.remainingVehicleJourneySegments.length;
if (stopsLeft > 10) {
params.marker.setVisible(false);
}
};
डिलीवरी वाहन फ़ॉलो करते समय पॉलीलाइन कस्टमाइज़ेशन का इस्तेमाल करें
JavaScript फ़्लीट ट्रैकिंग लाइब्रेरी की मदद से, मैप पर फ़ॉलो किए गए वाहन के रास्ते का लुक और स्टाइल अपने हिसाब से बनाया जा सकता है. लाइब्रेरी, वाहन के चालू या बचे हुए पाथ में, कोऑर्डिनेट के हर जोड़े के लिए एक google.maps.Polyline
ऑब्जेक्ट बनाती है.
आपके पास पॉलीलाइन कस्टमाइज़ेशन की जानकारी देकर, Polyline
ऑब्जेक्ट को स्टाइल करने का विकल्प है. इसके बाद, लाइब्रेरी इन कस्टमाइज़ेशन को दो स्थितियों में लागू करती है: ऑब्जेक्ट को मैप पर जोड़ने से पहले और जब ऑब्जेक्ट के लिए इस्तेमाल किया गया डेटा बदल जाता है.
मार्कर को पसंद के मुताबिक बनाने की तरह ही, मेल खाने वाले सभी Polyline
ऑब्जेक्ट पर लागू करने के लिए, PolylineOptions
का एक सेट तय किया जा सकता है. ऐसा तब किया जाता है, जब उन्हें बनाया या अपडेट किया जाता है.
इसी तरह, आपके पास कस्टमाइज़ेशन फ़ंक्शन के बारे में बताने का विकल्प भी होता है. कस्टमाइज़ेशन फ़ंक्शन से, Fleet Engine से भेजे गए डेटा के आधार पर, ऑब्जेक्ट की अलग-अलग स्टाइलिंग की जा सकती है.
वाहन की मौजूदा स्थिति के हिसाब से, यह फ़ंक्शन हर ऑब्जेक्ट की स्टाइल बदल सकता है. उदाहरण के लिए, Polyline
ऑब्जेक्ट को ज़्यादा गहरा रंग देना या वाहन की रफ़्तार कम होने पर उसे मोटा बनाना. आपके पास Fleet Engine के बाहर के सोर्स से भी जुड़ने का विकल्प है. साथ ही, इस जानकारी के आधार पर Polyline
ऑब्जेक्ट को स्टाइल किया जा सकता है.
FleetEngineDeliveryVehicleLocationProviderOptions
में दिए गए पैरामीटर का इस्तेमाल करके, कस्टमाइज़ेशन के बारे में बताया जा सकता है.
आप वाहन की यात्रा में अलग-अलग रास्ते की स्थितियों के लिए पसंद के मुताबिक सेट कर सकते हैं--पहले यात्रा कर चुके हैं, सक्रिय रूप से यात्रा कर रहे हैं या अभी तक यात्रा नहीं की है. पैरामीटर यहां दिए गए हैं:
takenPolylineCustomization
, पहले से तय किए गए रास्ते के लिए;activePolylineCustomization
, यात्रा के दौरान चुने गए रास्ते के लिए;remainingPolylineCustomization
, उस रास्ते के लिए जिस पर अब तक यात्रा नहीं की गई है.
PolylineOptions
का इस्तेमाल करके Polyline
ऑब्जेक्ट की स्टाइल बदलें
नीचे दिए गए उदाहरण में, PolylineOptions
के साथ Polyline
ऑब्जेक्ट के लिए स्टाइल को कॉन्फ़िगर करने का तरीका बताया गया है.
किसी भी Polyline
ऑब्जेक्ट की स्टाइल को पसंद के मुताबिक बनाने के लिए, इस पैटर्न को अपनाएं. ऐसा करने के लिए, पहले से सूची में दिए गए किसी भी पॉलीलाइन कस्टमाइज़ेशन का इस्तेमाल करें.
JavaScript
activePolylineCustomization = {
strokeWidth: 5,
strokeColor: 'black',
};
TypeScript
activePolylineCustomization = {
strokeWidth: 5,
strokeColor: 'black',
};
पसंद के मुताबिक बनाने वाले फ़ंक्शन का इस्तेमाल करके, Polyline
ऑब्जेक्ट की स्टाइल बदलें
इस उदाहरण में, कस्टमाइज़ेशन फ़ंक्शन का इस्तेमाल करके किसी चालू पॉलीलाइन ऑब्जेक्ट के लिए स्टाइल को कॉन्फ़िगर करने का तरीका बताया गया है. ऊपर दिए गए पॉलीलाइन कस्टमाइज़ेशन पैरामीटर का इस्तेमाल करके, किसी भी Polyline
ऑब्जेक्ट की स्टाइल को पसंद के मुताबिक बनाने के लिए, इस पैटर्न को अपनाएं.
JavaScript
// Color the Polyline objects in green if the vehicle is nearby.
activePolylineCustomization =
(params) => {
const distance = params.deliveryVehicle.remainingDistanceMeters;
if (distance < 1000) {
// params.polylines contains an ordered list of Polyline objects for
// the path.
for (const polylineObject of params.polylines) {
polylineObject.setOptions({strokeColor: 'green'});
}
}
};
TypeScript
// Color the Polyline objects in green if the vehicle is nearby.
activePolylineCustomization =
(params: DeliveryVehiclePolylineCustomizationFunctionParams) => {
const distance = params.deliveryVehicle.remainingDistanceMeters;
if (distance < 1000) {
// params.polylines contains an ordered list of Polyline objects for
// the path.
for (const polylineObject of params.polylines) {
polylineObject.setOptions({strokeColor: 'green'});
}
}
};
कंट्रोल करें कि Polyline
ऑब्जेक्ट किसको दिखें
डिफ़ॉल्ट रूप से, सभी Polyline
ऑब्जेक्ट दिखते हैं. Polyline
ऑब्जेक्ट को
न दिखने लायक बनाने के लिए, उसकी
visible
प्रॉपर्टी सेट करें:
JavaScript
remainingPolylineCustomization = {visible: false};
TypeScript
remainingPolylineCustomization = {visible: false};
वाहन या जगह के मार्कर के लिए InfoWindow
दिखाएं
किसी वाहन या जगह के मार्कर के बारे में ज़्यादा जानकारी दिखाने के लिए, InfoWindow
का इस्तेमाल किया जा सकता है.
इस उदाहरण में, InfoWindow
बनाने और उसे वाहन के मार्कर से जोड़ने का तरीका बताया गया है.
JavaScript
// 1. Create an info window.
const infoWindow = new google.maps.InfoWindow(
{disableAutoPan: true});
// (Assumes a delivery vehicle location provider.)
locationProvider.addListener('update', e => {
if (e.deliveryVehicle) {
const distance =
e.deliveryVehicle.remainingDistanceMeters;
infoWindow.setContent(
`Your vehicle is ${distance}m away from the next task.`);
// 2. Attach the info window to a vehicle marker.
// This property can return multiple markers.
const marker = mapView.vehicleMarkers[0];
infoWindow.open(mapView.map, marker);
}
});
// 3. Close the info window.
infoWindow.close();
TypeScript
// 1. Create an info window.
const infoWindow = new google.maps.InfoWindow(
{disableAutoPan: true});
// (Assumes a delivery vehicle location provider.)
locationProvider.addListener('update', (e: google.maps.journeySharing.FleetEngineDeliveryVehicleLocationProviderUpdateEvent) => {
if (e.deliveryVehicle) {
const distance =
e.deliveryVehicle.remainingDistanceMeters;
infoWindow.setContent(
`Your vehicle is ${distance}m away from the next task.`);
// 2. Attach the info window to a vehicle marker.
// This property can return multiple markers.
const marker = mapView.vehicleMarkers[0];
infoWindow.open(mapView.map, marker);
}
});
// 3. Close the info window.
infoWindow.close();
अपने-आप फ़िट होने की सुविधा बंद करें
अपने-आप फ़िट होने वाली सुविधा बंद करके, मैप को व्यूपोर्ट को वाहन और अनुमानित रास्ते से अपने-आप फ़िट होने से रोका जा सकता है. इस उदाहरण में बताया गया है कि यात्रा की जानकारी शेयर करने वाले मैप व्यू को कॉन्फ़िगर करते समय, ऑटोमैटिक फ़िटिंग को कैसे बंद किया जा सकता है.
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,
...
});
कोई मौजूदा मैप बदलें
आप कोई ऐसा मौजूदा मैप बदल सकते हैं जिसमें मार्कर या अन्य कस्टमाइज़ेशन शामिल हों और ये कस्टमाइज़ेशन खोए बिना.
उदाहरण के लिए, मान लें कि आपके पास स्टैंडर्ड google.maps.Map
इकाई वाला कोई वेब पेज है, जिस पर मार्कर दिखाया गया है:
<!DOCTYPE html>
<html>
<head>
<style>
/* Set the size of the div element that contains the map */
#map {
height: 400px; /* The height is 400 pixels */
width: 100%; /* The width is the width of the web page */
}
</style>
</head>
<body>
<h3>My Google Maps Demo</h3>
<!--The div element for the map -->
<div id="map"></div>
<script>
// Initialize and add the map
function initMap() {
// The location of Uluru
var uluru = {lat: -25.344, lng: 131.036};
// The map, initially centered at Mountain View, CA.
var map = new google.maps.Map(document.getElementById('map'));
map.setOptions({center: {lat: 37.424069, lng: -122.0916944}, zoom: 14});
// The marker, now positioned at Uluru
var marker = new google.maps.Marker({position: uluru, map: map});
}
</script>
<!-- Load the API from the specified URL.
* The async attribute allows the browser to render the page while the API loads.
* The key parameter will contain your own API key (which is not needed for this tutorial).
* The callback parameter executes the initMap() function.
-->
<script defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>
</body>
</html>
JavaScript जर्नी शेयरिंग लाइब्रेरी, जिसमें फ़्लीट ट्रैकिंग शामिल है, जोड़ने के लिए:
- पुष्टि करने वाले टोकन की फ़ैक्ट्री के लिए कोड जोड़ें.
initMap()
फ़ंक्शन में जगह की जानकारी देने वाली सेवा शुरू करें.initMap()
फ़ंक्शन में मैप व्यू शुरू करें. व्यू में मैप शामिल होता है.- मैप व्यू शुरू करने के लिए, कस्टमाइज़ेशन को कॉलबैक फ़ंक्शन में ले जाएं.
- एपीआई लोडर में लोकेशन लाइब्रेरी जोड़ें.
यहां दिए गए उदाहरण में, किए जाने वाले बदलावों को दिखाया गया है:
<!DOCTYPE html>
<html>
<head>
<style>
/* Set the size of the div element that contains the map */
#map {
height: 400px; /* The height is 400 pixels */
width: 100%; /* The width is the width of the web page */
}
</style>
</head>
<body>
<h3>My Google Maps Demo</h3>
<!--The div element for the map -->
<div id="map"></div>
<script>
let locationProvider;
// (1) Authentication Token Fetcher
function authTokenFetcher(options) {
// options is a record containing two keys called
// serviceType and context. The developer should
// generate the correct SERVER_TOKEN_URL and request
// based on the values of these fields.
const response = await fetch(SERVER_TOKEN_URL);
if (!response.ok) {
throw new Error(response.statusText);
}
const data = await response.json();
return {
token: data.Token,
expiresInSeconds: data.ExpiresInSeconds
};
}
// Initialize and add the map
function initMap() {
// (2) Initialize location provider. Use FleetEngineDeliveryVehicleLocationProvider
// as appropriate.
locationProvider = new google.maps.journeySharing.FleetEngineDeliveryVehicleLocationProvider({
YOUR_PROVIDER_ID,
authTokenFetcher,
});
// (3) Initialize map view (which contains the map).
const mapView = new google.maps.journeySharing.JourneySharingMapView({
element: document.getElementById('map'),
locationProviders: [locationProvider],
// any styling options
});
mapView.addListener('ready', () => {
locationProvider.deliveryVehicleId = DELIVERY_VEHICLE_ID;
// (4) Add customizations like before.
// The location of Uluru
var uluru = {lat: -25.344, lng: 131.036};
// The map, initially centered at Mountain View, CA.
var map = mapView.map;
map.setOptions({center: {lat: 37.424069, lng: -122.0916944}, zoom: 14});
// The marker, now positioned at Uluru
var marker = new google.maps.Marker({position: uluru, map: map});
};
}
</script>
<!-- Load the API from the specified URL
* The async attribute allows the browser to render the page while the API loads
* The key parameter will contain your own API key (which is not needed for this tutorial)
* The callback parameter executes the initMap() function
*
* (5) Add the journey sharing library to the API loader, which includes Fleet Tracking functionality.
-->
<script defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap&libraries=journeySharing">
</script>
</body>
</html>
अगर आपके पास Uluru के पास तय आईडी वाला डिलीवरी वाहन है, तो अब उसे मैप पर रेंडर किया जाएगा.