MapPoint Web Service SOAP Headers
MapPoint Web Service SOAP Headers
The MapPoint Web Service has four classes for use in SOAP headers: one each for the common, find, render, and route services. Each of these classes contains two headers: one for customer-defined transaction logging, and one for setting the context-related information that defines the locale, language, and unit of measurement in which results are returned from the methods called from the service. The header classes for the find, render, and route services inherit the properties set in the related headers for the common service.
The following table shows each MapPoint Web Service service and its related service class, in addition to the methods and headers that each service class contains.
Service |
Service class |
Methods |
Headers |
---|---|---|---|
Common |
CustomerInfoHeaderValue (CustomerInfoHeader class, which contains the CustomLogEntry property) UserInfoHeaderValue (UserInfoHeader class, which contains the Context, Culture, and DefaultDistanceUnit properties) |
||
Find |
CustomerInfoFindHeaderValue (CustomerInfoFindHeader class, which contains the CustomLogEntry property) UserInfoFindHeaderValue (UserInfoFindHeader class, which contains the Context, Culture, and DefaultDistanceUnit properties) |
||
Render |
CustomerInfoRenderHeaderValue (CustomerInfoRenderHeader class, which contains the CustomLogEntry property) UserInfoRenderHeaderValue (UserInfoRenderHeader class, which contains the Context, Culture, and DefaultDistanceUnit properties) |
||
Route |
CustomerInfoRouteHeaderValue (CustomerInfoRouteHeader class, which contains the CustomLogEntry property) UserInfoRouteHeaderValue (UserInfoRouteHeader class, which contains the Context, Culture, and DefaultDistanceUnit properties) |
Example
[Visual Basic]
'Declare the service variables and set credentials
Dim findService As New FindServiceSoap()
Dim routeService As New RouteServiceSoap()
findService.Credentials = New System.Net.NetworkCredential("UserID", "Password")
routeService.Credentials = New System.Net.NetworkCredential("UserID", "Password")
'Declare header variables
Dim myUserInfoFindHeader As New UserInfoFindHeader()
Dim myUserInfoRouteHeader As New UserInfoRouteHeader()
Dim myCultureInfo As New CultureInfo()
'Set the language to Spanish before making the Find call
myCultureInfo.Name = "es"
myUserInfoFindHeader.Culture = myCultureInfo
findService.UserInfoFindHeaderValue = myUserInfoFindHeader
'Find two locations
Dim foundResults1 As FindResults
Dim foundResults2 As FindResults
Dim findSpec As New FindSpecification()
findSpec.DataSourceName = "MapPoint.NA"
findSpec.InputPlace = "Seattle"
foundResults1 = findService.Find(findSpec)
findSpec.InputPlace = "Redmond"
foundResults2 = findService.Find(findSpec)
'Use the result of the Find calls in a Route call
Dim myRoute As Route
Dim myLatLongs(1) As LatLong
myLatLongs(0) = foundResults1.Results(0).FoundLocation.LatLong
myLatLongs(1) = foundResults2.Results(0).FoundLocation.LatLong
'Make a call to the Route service, using Miles as the distance unit and Spanish as the language
myUserInfoRouteHeader.Culture = myCultureInfo
myUserInfoRouteHeader.DefaultDistanceUnit = DistanceUnit.Mile
routeService.UserInfoRouteHeaderValue = myUserInfoRouteHeader
myRoute = routeService.CalculateSimpleRoute(myLatLongs, "MapPoint.NA", SegmentPreference.Quickest)
'Output the route distance, which is returned in miles, and the directions, which are returned in Spanish
Console.WriteLine("Total route distance in miles: " + myRoute.Itinerary.Segments(0).Distance.ToString())
Dim direction As Direction
For Each direction In myRoute.Itinerary.Segments(0).Directions
Console.WriteLine(direction.Instruction)
Next
[C#]
//Declare the service variables and set credentials
FindServiceSoap findService = new FindServiceSoap();
RouteServiceSoap routeService = new RouteServiceSoap();
findService.Credentials = new System.Net.NetworkCredential("UserID", "Password");
routeService.Credentials = new System.Net.NetworkCredential("UserID", "Password");
//Declare header variables
UserInfoFindHeader myUserInfoFindHeader = new UserInfoFindHeader();
UserInfoRouteHeader myUserInfoRouteHeader = new UserInfoRouteHeader();
CultureInfo myCultureInfo = new CultureInfo();
//Set the language to Spanish before making the Find call
myCultureInfo.Name = "es";
myUserInfoFindHeader.Culture = myCultureInfo;
findService.UserInfoFindHeaderValue = myUserInfoFindHeader;
//Find two locations
FindResults foundResults1;
FindResults foundResults2;
FindSpecification findSpec = new FindSpecification();
findSpec.DataSourceName = "MapPoint.NA";
findSpec.InputPlace = "Seattle";
foundResults1 = findService.Find(findSpec);
findSpec.InputPlace = "Redmond";
foundResults2 = findService.Find(findSpec);
//Use the result of the Find calls in a Route call
Route myRoute;
LatLong[] myLatLongs = new LatLong[2];
myLatLongs[0] = foundResults1.Results[0].FoundLocation.LatLong;
myLatLongs[1] = foundResults2.Results[0].FoundLocation.LatLong;
//Make a call to the Route service, using Miles as the distance unit and Spanish as the language
myUserInfoRouteHeader.Culture = myCultureInfo;
myUserInfoRouteHeader.DefaultDistanceUnit = DistanceUnit.Mile;
routeService.UserInfoRouteHeaderValue = myUserInfoRouteHeader;
myRoute = routeService.CalculateSimpleRoute(myLatLongs, "MapPoint.NA", SegmentPreference.Quickest);
//Output the route distance, which is returned in miles, and the directions, which are returned in Spanish.
Console.WriteLine("Total route distance in miles: " + myRoute.Itinerary.Segments[0].Distance.ToString());
foreach(Direction direction in myRoute.Itinerary.Segments[0].Directions)
{
Console.WriteLine(direction.Instruction);
}