GetRouteCostMatrix

Description

GetRouteCostMatrix calculates the travel time and distances between an array of start and end locations and returns the route that is either the fastest or the shortest. The result determines the total time and distance of the individual routes (the route costs). For example if you input four start points and four end points, a total of 16 routes will be calculated.

The GetRouteCostMatrix operation also supports transient updates, that allow you to perform per-request based road network updates for your calculations. For more information on transient updates, see Adding Transient Updates to GetRouteCostMatrix

Service URL Formats

The URL endpoint for the Routing SOAP service has the following general form:

http://<server>:<port>/soap/RoutingService

The URL for the Routing WSDL has the following general form:

http://<server>:<port>/soap/RoutingService?wsdl

Messages

The following table lists the request and response messages for the GetRouteCostMatrix operation.

Click on a message name to get more information about the message.

Message Description
RouteCostMatrixRequest The request message for the GetRouteCostMatrix operation.
RouteCostMatrixResponse The response message for the GetRouteCostMatrix operation.

Single Start and End Point Example

Request for a cost matrix with a single start and end point.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
	xmlns:v1="http://www.mapinfo.com/routing/service/v1" xmlns:v11="http://www.mapinfo.com/midev/service/geometries/v1">
	<soapenv:Header />
	<soapenv:Body>
		<v1:RouteCostMatrixRequest id="?" locale="?">
			<v1:DatasetResourceName>US_NE</v1:DatasetResourceName>
			<v1:StartPoints srsName="epsg:4326">
				<v11:Point srsName="epsg:4326">
					<v11:Pos>
						<v11:X>-74.150620</v11:X>
						<v11:Y>41.057343</v11:Y>
					</v11:Pos>
				</v11:Point>
			</v1:StartPoints>
			<v1:EndPoints srsName="epsg:4326">
				<v11:Point srsName="epsg:4326">
					<v11:Pos>
						<v11:X>-74.946153</v11:X>
						<v11:Y>42.010112</v11:Y>
					</v11:Pos>
				</v11:Point>
			</v1:EndPoints>
			<v1:DistanceUnit>km</v1:DistanceUnit>
			<v1:TimeUnit>Second</v1:TimeUnit>
			<v1:ReturnOptimalRoutesOnly>true</v1:ReturnOptimalRoutesOnly>
			<v1:OptimizeBy>time</v1:OptimizeBy>
			<v1:MajorRoads>true</v1:MajorRoads>
			<v1:ReturnDistance>true</v1:ReturnDistance>
			<v1:ReturnTime>true</v1:ReturnTime>
			<v1:DestinationSrs>epsg:4326</v1:DestinationSrs>
			<v1:HistoricTrafficTimeBucket>none</v1:HistoricTrafficTimeBucket>
			<v1:RoadTypePreferences>
				<v12:RoadTypesPrefEntry xmlns:v12="http://www.mapinfo.com/routing/service/common/v1">
					<v12:RoadTypes>limited access dense urban</v12:RoadTypes>
					<v12:RoadTypesPref>None</v12:RoadTypesPref>
				</v12:RoadTypesPrefEntry>
			</v1:RoadTypePreferences>
		</v1:RouteCostMatrixRequest>
	</soapenv:Body>
</soapenv:Envelope>

Response for a cost matrix with a single start and end point.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <RouteCostMatrixResponse xmlns="http://www.mapinfo.com/routing/service/v1" xmlns:ns2="http://www.mapinfo.com/midev/service/geometries/v1" xmlns:ns3="http://www.mapinfo.com/routing/service/common/v1" xmlns:ns4="http://www.mapinfo.com/midev/service/common/v1" xmlns:ns5="http://www.mapinfo.com/midev/service/units/v1">
         <Matrix>
            <Time uom="Second">5704.0</Time>
            <Distance uom="km">164.479</Distance>
            <StartPoint srsName="epsg:4326">
               <ns2:Pos>
                  <ns2:X>-74.15062</ns2:X>
                  <ns2:Y>41.057343</ns2:Y>
               </ns2:Pos>
            </StartPoint>
            <EndPoint srsName="epsg:4326">
               <ns2:Pos>
                  <ns2:X>-74.946153</ns2:X>
                  <ns2:Y>42.010112</ns2:Y>
               </ns2:Pos>
            </EndPoint>
         </Matrix>
      </RouteCostMatrixResponse>
   </soap:Body>
</soap:Envelope>

Multiple Start and End Point Example

Request for a cost matrix with two start and end point.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
	xmlns:v1="http://www.mapinfo.com/routing/service/v1" xmlns:v11="http://www.mapinfo.com/midev/service/geometries/v1">
	<soapenv:Header />
	<soapenv:Body>
		<v1:RouteCostMatrixRequest id="?" locale="?">
			<v1:DatasetResourceName>US_NE</v1:DatasetResourceName>
			<v1:StartPoints srsName="epsg:4326">
				<v11:Point srsName="epsg:4326">
					<v11:Pos>
						<v11:X>-74.150620</v11:X>
						<v11:Y>41.057343</v11:Y>
					</v11:Pos>
				</v11:Point>
				<v11:Point srsName="epsg:4326">
					<v11:Pos>
						<v11:X>-74.250620</v11:X>
						<v11:Y>41.357343</v11:Y>
					</v11:Pos>
				</v11:Point>
			</v1:StartPoints>
			<v1:EndPoints srsName="epsg:4326">
				<v11:Point srsName="epsg:4326">
					<v11:Pos>
						<v11:X>-74.946153</v11:X>
						<v11:Y>42.010112</v11:Y>
					</v11:Pos>
				</v11:Point>
				<v11:Point srsName="epsg:4326">
					<v11:Pos>
						<v11:X>-74.946153</v11:X>
						<v11:Y>42.010112</v11:Y>
					</v11:Pos>
				</v11:Point>
			</v1:EndPoints>
			<v1:DistanceUnit>km</v1:DistanceUnit>
			<v1:TimeUnit>Second</v1:TimeUnit>
			<v1:ReturnOptimalRoutesOnly>true</v1:ReturnOptimalRoutesOnly>
			<v1:OptimizeBy>time</v1:OptimizeBy>
			<v1:MajorRoads>true</v1:MajorRoads>
			<v1:ReturnDistance>true</v1:ReturnDistance>
			<v1:ReturnTime>true</v1:ReturnTime>
			<v1:DestinationSrs>epsg:4326</v1:DestinationSrs>
			<v1:HistoricTrafficTimeBucket>none</v1:HistoricTrafficTimeBucket>
			<v1:RoadTypePreferences>
				<v11:RoadTypesPrefEntry>
					<v11:RoadTypes>limited access dense urban</v11:RoadTypes>
					<v11:RoadTypesPref>None</v11:RoadTypesPref>
				</v11:RoadTypesPrefEntry>
			</v1:RoadTypePreferences>
		</v1:RouteCostMatrixRequest>
	</soapenv:Body>
</soapenv:Envelope>

Response for a Travel boundary with multiple costs.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
	<soap:Body>
		<RouteCostMatrixResponse xmlns="http://www.mapinfo.com/routing/service/v1"
			xmlns:ns2="http://www.mapinfo.com/midev/service/geometries/v1"
			xmlns:ns3="http://www.mapinfo.com/routing/service/common/v1"
			xmlns:ns4="http://www.mapinfo.com/midev/service/common/v1" xmlns:ns5="http://www.mapinfo.com/midev/service/units/v1">
			<Matrix>
				<Time uom="Second">5704.0</Time>
				<Distance uom="km">164.479</Distance>
				<StartPoint srsName="epsg:4326">
					<ns2:Pos>
						<ns2:X>-74.15062</ns2:X>
						<ns2:Y>41.057343</ns2:Y>
					</ns2:Pos>
				</StartPoint>
				<EndPoint srsName="epsg:4326">
					<ns2:Pos>
						<ns2:X>-74.946153</ns2:X>
						<ns2:Y>42.010112</ns2:Y>
					</ns2:Pos>
				</EndPoint>
			</Matrix>
			<Matrix>
				<Time uom="Second">4087.0</Time>
				<Distance uom="km">119.585</Distance>
				<StartPoint srsName="epsg:4326">
					<ns2:Pos>
						<ns2:X>-74.25062</ns2:X>
						<ns2:Y>41.357343</ns2:Y>
					</ns2:Pos>
				</StartPoint>
				<EndPoint srsName="epsg:4326">
					<ns2:Pos>
						<ns2:X>-74.946153</ns2:X>
						<ns2:Y>42.010112</ns2:Y>
					</ns2:Pos>
				</EndPoint>
			</Matrix>
		</RouteCostMatrixResponse>
	</soap:Body>
</soap:Envelope>