AI-generated Key Takeaways
-
This documentation explains how to customize the appearance of maps in journey sharing by using cloud-based map styling or setting style options directly in your code.
-
You can style maps using cloud-based map styling through the Google Cloud console or by setting style options in your code for
ConsumerMapView
andConsumerMapFragment
. -
In JavaScript, you can style your consumer trip sharing map by specifying a
mapId
and othermapOptions
when creating theJourneySharingMapView
, or by directly setting map options in your code. -
You can display additional information using
InfoWindow
, and control the viewport by disabling automatic fitting to the vehicle and route.
This document covers how to customize the look and feel of a map and control data visibility and viewport options. You can do this in the following ways:
- Use cloud-based map styling
- Set map style options directly in your own code
Style the map with cloud-based maps styling
To apply a map style to your JavaScript consumer trip sharing map, specify a
mapId
and
any other
mapOptions
when you create the JourneySharingMapView
.
The following examples show how to apply a map style with a map ID.
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.
});
Style maps directly in your own code
You can also customize map styling by setting map options when you create the
JourneySharingMapView
. The following examples show how to style a map using
map options. For more information on what map options you can set, see
mapOptions
in the Google Maps JavaScript API reference.
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" }
]
}
]
}
});
Display information on the map
Display additional information about a vehicle or location marker using an
InfoWindow
. For more information, see
InfoWindow
.
The following example shows how to create an InfoWindow
and attach it
to a vehicle marker:
JavaScript
// 1. Create an info window.
const infoWindow = new google.maps.InfoWindow(
{disableAutoPan: true});
locationProvider.addListener('update', e => {
const stopsCount = e.trip.remainingWaypoints.length;
infoWindow.setContent(
`Your vehicle is ${stopsCount} stops away.`);
// 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});
locationProvider.addListener('update', (e: google.maps.journeySharing.FleetEngineTripLocationProviderUpdateEvent) => {
const stopsCount = e.trip.remainingWaypoints.length;
infoWindow.setContent(
`Your vehicle is ${stopsCount} stops away.`);
// 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();
Disable automatic fitting
You can stop the map from automatically fitting the viewport to the vehicle and anticipated route by disabling automatic fitting. The following example shows how to disable automatic fitting when you configure the journey sharing map view.
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,
...
});