Note: This release is in preview. Features described here don’t become generally available until the latest general availability date that Salesforce announces for this release. Before then, and where features are noted as beta, pilot, or developer preview, we can’t guarantee general availability within any particular time frame or at all. Make your purchase decisions only on the basis of generally available products and features.
Create a Route
The CreateRoute() Apex method
creates a record that includes a list of waypoints that reps access in Salesforce Maps. The
record doesn't include a route between waypoints.
Signature
1maps__Route__c maps.API.CreateRoute(map<string,object> options)Where,
- maps__Route__c is a Salesforce Maps route record containing a list of waypoints.
- maps is the namespace that's available after you install Salesforce Maps.
- API is the class that contains the global methods exposed to developers.
- CreateRoute() is the method.
Allocations
This method requires 2–25 waypoints.
Sample Code
This code returns a maps__Route__c record of waypoints
of accounts with billing addresses in Atlanta.
Input Format of Waypoints
1{
2version: '1', // Required. Version of the API endpoint. Must be '1'.
3name: 'String', // Name of the new route record.
4date: Date, // Time and date in Epoch format that the route is created for. Default is the current time and date.
5waypoints: [ {recordId:String, lat:Decimal, lng:Decimal, address:String, order: Integer, baseobjectid: String, markerlayerid: String, notes:String}, {...} ] // List of waypoint objects.
6}Example
1// Create a list of waypoints.
2List<Map<String,Object>> waypoints = new List<Map<String,Object>>();
3
4// Retrieve the list of billing addresses from the database and
5// add them to the waypoints object.
6List<Account> accountList = [Select Id,BillingStreet,BillingCity,BillingState,BillingPostalcode, BillingLatitude,BillingLongitude From Account Where BillingCity = 'Atlanta' LIMIT 25];
7
8for(Integer i = 0; i < accountList.size(); i++){
9 Account thisAccount = accountList[i];
10 String address = thisAccount.BillingCity + ', ' + thisAccount.BillingState + ' ' + thisAccount.BillingPostalCode;
11 waypoints.add(new Map<String,Object>{
12 'lat' => thisAccount.BillingLatitude,
13 'lng' => thisAccount.BillingLongitude,
14 'address' => address,
15 'recordId' => thisAccount.id,
16 'baseobjectid' => 'a0N0t000002hEyvEAE',
17 'markerlayerid' => 'a0v0t000001wE91AAE',
18 'order' => i + 1
19 });
20}
21
22// Build the request.
23Map<String,Object> request = new Map<String,Object>();
24request.put('version','1');
25request.put('name','Atlanta Accounts Route');
26request.put('waypoints',waypoints);
27
28// Call the CreateRoute() method with the waypoints.
29maps__Route__c response = maps.API.CreateRoute(request);
30
31// Log the route record output in JSON format.
32system.debug(JSON.serialize(response));Sample Response
This method returns a maps__Route__c record, which inserts the waypoints that appear in Salesforce Maps. This JSON response illustrates the essential data stored in the route record.
1{
2 "attributes": {
3 "type": "maps__Route__c",
4 "url": "/services/data/v51.0/sobjects/maps__Route__c/a0y0t000001ht8HAAQ"
5 },
6 "Name": "Atlanta Accounts Route",
7 "maps__Date__c": "2021-05-04",
8 "Id": "a0y0t000001ht8HAAQ"
9}