Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Routing API Updates of Sept 30th #387

Open
wants to merge 12 commits into
base: main
Choose a base branch
from
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
> [!NOTE]
> **Bing Maps Local Insights API retirement**
>
> The Bing Maps Local Insights API is deprecated and will be retired on 9/30/2024. To avoid service disruptions, all implementations using Bing Maps Local Insights API will need to be updated to use [Azure Maps](https://azure.microsoft.com/products/azure-maps) by 9/30/2024.
> The Bing Maps Local Insights API is deprecated and was retired on 9/30/2024. To avoid service disruptions, all implementations using Bing Maps Local Insights API will need to be updated to use [Azure Maps](https://azure.microsoft.com/products/azure-maps) by 9/30/2024.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like this better if we had a specific Azure Maps API to point to here... Here is a suggestion for alternative wording:

Suggested change
> The Bing Maps Local Insights API is deprecated and was retired on 9/30/2024. To avoid service disruptions, all implementations using Bing Maps Local Insights API will need to be updated to use [Azure Maps](https://azure.microsoft.com/products/azure-maps) by 9/30/2024.
> The Bing Maps Local Insights API was retired on 9/30/2024 and is no longer supported. All implementations using Bing Maps Local Insights API can be updated to use [Azure Maps](https://azure.microsoft.com/products/azure-maps).

>
> Azure Maps is Microsoft's next-generation maps and geospatial services for developers. Azure Maps has many of the same features as Bing Maps for Enterprise, and more. To get started with Azure Maps, create a free [Azure subscription](https://azure.microsoft.com/free) and an [Azure Maps account](/azure/azure-maps/how-to-manage-account-keys#create-a-new-account). For more information about azure Maps, see [Azure Maps Documentation](/azure/azure-maps/). For migration guidance, see [Bing Maps Migration Overview](/azure/azure-maps/migrate-bing-maps-overview).
105 changes: 13 additions & 92 deletions BingMaps/rest-services/routes/calculate-a-distance-matrix.md

Large diffs are not rendered by default.

22 changes: 7 additions & 15 deletions BingMaps/rest-services/routes/calculate-a-truck-route.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ There are a lot of options available for truck routes. As such, some requests co
**Synchronous Truck Routing Request URL (GET)**

```url
https://dev.virtualearth.net/REST/v1/Routes/Truck?wayPoint.1={wayPpoint1}&viaWaypoint.2={viaWaypoint2}&waypoint.3={waypoint3}&wayPoint.n={waypointN}&heading={heading}&optimize={optimize}&avoid={avoid}&distanceBeforeFirstTurn={distanceBeforeFirstTurn}&routeAttributes={routeAttributes}&dateTime={dateTime}&tolerances={tolerances}&distanceUnit={distanceUnit}&vehicleHeight={vehicleHeight}&vehicleWidth={vehicleWidth}&vehicleLength={vehicleLength}&vehicleWeight={vehicleWeight}&vehicleAxles={vehicleAxles}&vehicleTrailers={vehicleTrailers}&vehicleSemi={vehicleSemi}&vehicleMaxGradient={vehicleMaxGradient}&vehicleMinTurnRadius={vehicleMinTurnRadius}&vehicleHazardousMaterials={vehicleHazardousMaterials}&vehicleHazardousPermits={vehicleHazardousPermits}&key={BingMapsKey}
https://dev.virtualearth.net/REST/v1/Routes/Truck?wayPoint.1={wayPpoint1}&viaWaypoint.2={viaWaypoint2}&waypoint.3={waypoint3}&wayPoint.n={waypointN}&heading={heading}&optimize={optimize}&avoid={avoid}&routeAttributes={routeAttributes}&dateTime={dateTime}&tolerances={tolerances}&distanceUnit={distanceUnit}&vehicleHeight={vehicleHeight}&vehicleWidth={vehicleWidth}&vehicleLength={vehicleLength}&vehicleWeight={vehicleWeight}&vehicleAxles={vehicleAxles}&vehicleTrailers={vehicleTrailers}&vehicleSemi={vehicleSemi}&vehicleHazardousMaterials={vehicleHazardousMaterials}&key={BingMapsKey}
```

**Synchronous Truck Routing Request URL (POST)**
Expand Down Expand Up @@ -110,7 +110,6 @@ Content-Type: application/json
…],
"avoid": string,
"dateTime": string,
"distanceBeforeFirstTurn": number,
"distanceUnit": string,
"heading": number,
"optimize": string,
Expand All @@ -126,10 +125,7 @@ Content-Type: application/json
"vehicleAxles": number,
"vehicleTrailers": number,
"vehicleSemi": bool,
"vehicleMaxGradient": number,
"vehicleMinTurnRadius": number,
"vehicleHazardousMaterials": string,
"vehicleHazardousPermits": string
"vehicleHazardousMaterials": string
}
}
```
Expand Down Expand Up @@ -172,7 +168,6 @@ Content-Type: application/json
…],
"avoid": string,
"dateTime": string,
"distanceBeforeFirstTurn": number,
"distanceUnit": string,
"heading": number,
"optimize": string,
Expand All @@ -188,10 +183,7 @@ Content-Type: application/json
"vehicleAxles": number,
"vehicleTrailers": number,
"vehicleSemi": bool,
"vehicleMaxGradient": number,
"vehicleMinTurnRadius": number,
"vehicleHazardousMaterials": string,
"vehicleHazardousPermits": string
"vehicleHazardousMaterials": string
}
}
```
Expand All @@ -217,7 +209,7 @@ https://dev.virtualearth.net/REST/v1/Routes/TruckAsyncCallback?requestId={reques
| `waypoint.n`<br/><br/>`viaWaypoint.n` | `wp.n`<br/><br/>`vwp.n` | **Required**. A route is defined by a set of waypoints and viaWaypoints (intermediate locations that the route must pass through). The index (n value) for the set of waypoints and viaWaypoints is an integer starting with **0** or **1**. The waypoint and viaWaypoint index values must be sequential and must always increment by 1.<br/><br/>Both waypoint and viaWaypoint locations can be specified as a Point, a landmark, or an address. For more information about Point values, see [Location and Area Types](../common-parameters-and-types/location-and-area-types.md).<br/><br/>You can have a maximum of 25 waypoints or viaWaypoints in a request. The start and end points of the route cannot be viaWaypoints.<br/><br/>**GET Examples**:<br/><br/>waypoint.1=47.610,-122.107 \[Point\] <br/><br/>wp.1=Seattle,WA \[landmark\]<br/><br/>waypoint.1=1%20Microsoft%20Way%20Redmond%20WA%20 \[address\]<br/><br/>&waypoint.1=Seattle&viaWaypoint.2=Kirkland&waypoint.3=Redmond \[viaWaypoint\]<br/><br/>**POST Examples:** <br/><br/>"waypoints": \[{<br/>&nbsp;&nbsp;&nbsp;&nbsp;"latitude": 47.610,<br/>&nbsp;&nbsp;&nbsp;&nbsp;"longitude": -122.107<br/>},{<br/>&nbsp;&nbsp;&nbsp;&nbsp;"address": "Seattle",<br/>&nbsp;&nbsp;&nbsp;&nbsp;"isViaPoint": true<br/>},{<br/>&nbsp;&nbsp;&nbsp;&nbsp;"address": "1 Microsoft Way, Redmond, WA",<br/>}\] |
| `avoid` | | **Optional.** Specifies the road types to minimize or avoid when a route is created for the driving travel mode. A comma-separated list of values from the following list that limit the use of highways and toll roads in the route. In the definitions below, "highway" also refers to a "limited-access highway". If no values are specified, highways and tolls are allowed in the route. Can consist of the following values:<br/><br/> • **highways**: Avoids the use of highways in the route.<br/> • **tolls**: Avoids the use of toll roads in the route.<br/> • **ferry**: Avoids the use of ferries in the route.<br/> • **minimizeHighways**: Minimizes (tries to avoid) the use of highways in the route.<br/> • **minimizeTolls**: Minimizes (tries to avoid) the use of toll roads in the route.<br/> • **borderCrossing**: Avoids crossing country/region borders in the route.<br /> • **minimizeDrivingSideTurn**: In right-side-driving regions, this is to minimize right turns. In left-side-driving regions, this is to minimize left turns.<br /> • **minimizeAgainstDrivingSideTurn**: In right-side-driving regions, this is to minimize left turns. In left-side-driving regions, this is to minimize right turns.<br /> • **minimizeUTurn**: This is to minimize U-turns in the route.<br /><br/> **Note:** If you specify more than one option for a road type, then the most restrictive option is used. For example, if you set the avoid parameter to both *highways* and *minimizeHighways*, the *highways* option is used and all highways are avoided.<br/><br/> **Examples**:<br /> `avoid=highways`<br /><br /> `avoid=highways,tolls` <br /><br /> `avoid=borderCrossing`|
| `borderRestriction` | | **Optional, POST Requests only.** Specifies the border crossing preference with respect to countries, dependent territories, special areas of geographical interest, states, subdivision, or provinces. Consists of the following values:<br/><br/> • **RestrictionType**: is an enum that specify whether border crossing should be avoided, allowed, or minimized. <br/> <ul><li>`avoidCrossing` : Avoid border or boundary crossing as specified in `restrictionList`. </li> <li>`minimizeCrossing`: Minimize border or boundary crossing as specified in `restrictionList`. </li> <li>`allowedRegions`: Restrict the route only through the specified regions as specified in `restrictionList`.</li></ul> • **RestrictionList**: Defines the list of regions that should be considered for `borderRestriction`. <br> <ul><li> Use the `ISO 3166-1 alpha-2 codes` standard (i.e., two-letter country codes defined in `ISO 3166-1`) to represent countries, dependent territories, and special areas of geographical interest: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2. </li> <li> Use the `ISO 3166-2` standard for country subdivision codes, for example: https://en.wikipedia.org/wiki/ISO_3166-2:US and https://en.wikipedia.org/wiki/ISO_3166-2:CA .</li> <li>Can also take the special values: </li> <ul><li> `countryRegion`: Considers all borders for countries, dependent territories, or special areas of geographical interest for the `borderRestriction` preference. </li><li> `adminDistrict`: Consider all boundaries for states, subdivision, or provinces for the `borderRestriction` preference. </li /></ul></ul> <br /> **Note:** Currently, we only support boundary crossing at state, subdivision, or province level for **US** (United States of America) and **CA** (Canada). We will consider adding support for other countries/regions upon customer requests. <br/><br />**POST Examples**: <br/> • Avoid crossing state boundary of `US-CT` (Connecticut) during routing. <br /><br />"borderRestriction": {<br/>&nbsp;&nbsp;&nbsp;&nbsp;"type": "avoidCrossing",<br/>&nbsp;&nbsp;&nbsp;&nbsp;"restrictions": ["US-CT"]<br/>}<br/> <br /> • Avoid crossing all country/region borders during routing. <br/><br />"borderRestriction": {<br/>&nbsp;&nbsp;&nbsp;&nbsp;"type": "AvoidCrossing",<br/>&nbsp;&nbsp;&nbsp;&nbsp;"restrictions": ["CountryRegion"]<br/>}<br />|
| `distanceBeforeFirstTurn` | `dbft` | **Optional.** Specifies the distance before the first turn is allowed in the route. An integer distance specified in meters. Use this parameter to make sure that the moving vehicle has enough distance to make the first turn.<br/><br/>**Examples**: distanceBeforeFirstTurn=500 |
| `distanceBeforeFirstTurn` | `dbft` | **Deprecated.** |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any additional information that can be given beyond "deprecated"?

Has it been deprecated (slated for retirement, meaning it will no longer be supported after a certain date) or retired (no longer supported)?

| `heading` | `hd` | **Optional.** Specifies the initial heading for the route. An integer value between 0 and 359 that represents degrees from north where north is 0 degrees and the heading is specified clockwise from north. For example, setting the heading of 270 degrees creates a route that initially heads west.<br/><br/>**Example**: heading=90 |
| `optimize` | `optmz` | **Optional.** Specifies what parameters to use to optimize the route. Can be one of the following values: <br/><br/> • **time** \[default\]: The route is calculated to minimize the time. Traffic information is not used.<br/> • **timeWithTraffic**: The route is calculated to minimize the time and uses current traffic information.<br/><br/>**Example**: optimize=time|
|`optimizeWaypoints`|`optWp`|**Optional.** Instructs the API to rearrange the route waypoints and reduce the route cost specified with the optimize parameter. The route first waypoint wp.0 and last waypoint wp.n order is not changed, their position is considered fixed. <br /><br />One of the following values:<br />Either `true` or `false`<br /><br /> **Example**: `optimizeWaypoints=true` <br /><br /> **Note**: The parameter is available only when the route waypoints number is greater than 2, the route is composed of more than just the start and end waypoints.|
Expand All @@ -234,10 +226,10 @@ https://dev.virtualearth.net/REST/v1/Routes/TruckAsyncCallback?requestId={reques
| `vehicleAxles` | `axles` | **Optional**. The number of axles.<br/><br/>**Example**: vehicleAxles=3 |
| `vehicleTrailers` | `vt` | **Optional**. The number of trailers. <br/><br/>**Example**: vehicleTrailers=2 |
| `vehicleSemi` | `semi` | **Optional**. Indicates if the truck is pulling a semi-trailer. Semi-trailer restrictions are mostly used in North America. <br/><br/>**Example**: vehicleSemi=true |
| `vehicleMaxGradient` | `vmg` | **Optional**. The maximum gradient the vehicle can drive measured in degrees.<br/><br/>**Example**: vehicleMaxGradient=10 |
| `vehicleMinTurnRadius` | `vmtr` | **Optional**. The minimum required radius for the vehicle to turn in the specified dimension units.<br/><br/>**Example**: vehicleMinTurnRadius=15 |
| `vehicleMaxGradient` | `vmg` | **Deprecated**. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any additional information that can be given beyond "deprecated"?

Has it been deprecated (slated for retirement, meaning it will no longer be supported after a certain date) or retired (no longer supported)?

| `vehicleMinTurnRadius` | `vmtr` | **Deprecated**. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any additional information that can be given beyond "deprecated"?

Has it been deprecated (slated for retirement, meaning it will no longer be supported after a certain date) or retired (no longer supported)?

| `vehicleHazardousMaterials` | `vhm` | **Optional**. A comma separated and case-sensitive list of one or more hazardous materials for which the vehicle is transporting. Possible values and their aliases are:<br/><br/> • **Combustable** or **C**<br/> • **Corrosive** or **Cr**<br/> • **Explosive** or **E**<br/> • **Flammable** or **F**<br/> • **FlammableSolid** or **FS**<br/> • **Gas** or **G**<br/> • **GoodsHarmfulToWater** or **WH**<br/> • **Organic** or **O**<br/> • **Other**<br/> • **Poison** or **P**<br/> • **PoisonousInhalation** or **PI**<br/> • **Radioactive** or **R**<br/> • **None**<br/><br/>**Examples**<br/><br/>vehicleHazardousMaterials=Explosive,Corrosive<br/><br/>vehicleHazardousMaterials=E,Cr |
| `vehicleHazardousPermits` | `vhp` | **Optional**. A comma separated and case-sensitive list of one or more hazardous materials for which the vehicle has a permit. Possible values and their aliases are:<br/><br/> • **AllAppropriateForLoad**<br/> • **Combustible** or **C**<br/> • **Corrosive** or **Cr**<br/> • **Explosive** or **E**<br/> • **Flammable** or **F**<br/> • **FlammableSolid** or **FS**<br/> • **Gas** or **G**<br/> • **Organic** or **O**<br/> • **Poison** or **P**<br/> • **PoisonousInhalation** or **PI**<br/> • **Radioactive** or **R**<br/> • **None**<br/><br/>**Examples**<br/><br/>vehicleHazardousPermits=Explosive,Corrosive<br/><br/>vehicleHazardousPermits=E,Cr |
| `vehicleHazardousPermits` | `vhp` | **Deprecated**. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any additional information that can be given beyond "deprecated"?

Has it been deprecated (slated for retirement, meaning it will no longer be supported after a certain date) or retired (no longer supported)?


> [!TIP]
> Geocoding your waypoints ahead of time and store that information if you plan to use those locations in future requests. The Bing Maps terms of use allow the geocode result data to be stored for as long as you have a Bing Maps license. This can help speed up future requests.
Expand Down
6 changes: 2 additions & 4 deletions BingMaps/rest-services/routes/calculate-an-isochrone.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,9 +115,8 @@ The following is a list of parameters that are supported by the Isochrone API.
| `distanceUnit` | `du` | **Optional**. The units in which the maxDistance value is specified. One of the following values:<br/><br/> • **mile** or **mi**<br/> • **kilometer** or **km** \[default\]<br/><br/>**Example**: distanceUnit=mi |
| `dateTime` | `dt` | **Optional** **for time based Driving and Transit**. When a maxTime value is specified, predictive traffic data is used to calculate the best isochrone route for the specified date time. This is not supported for distanced based queries.<br/><br/>A string that contains the date and time formatted as a [DateTime](https://msdn.microsoft.com/library/03ybds8y.aspx) value. For information about the string representation options for DateTime values, see [DateTime.Parse Method (String)](https://msdn.microsoft.com/library/1k1skd40.aspx). <br/><br/>**Examples**:<br/><br/>dateTime=03/01/2011 05:42:00<br/><br/>dateTime=05:42:00 \[assumes the current day\]<br/><br/>dateTime=03/01/2011 \[assumes the current time\] |
| `optimize` | `optmz` | **Optional.** Specifies what parameters to use to optimize the isochrone route. One of the following values:<br/><br/> • **distance**: The route is calculated to minimize the distance. Traffic information is not used. Use with maxDistance.<br/> • **time** [default]: The route is calculated to minimize the time. Traffic information is not used. Use with maxTime.<br/> • **timeWithTraffic**: The route is calculated to minimize the time and uses current or predictive traffic information depending on if a dateTime value is specified. Use with maxTime.<br/><br/>**Example:** optimize=distance |
| `travelMode` | `mode` | **Optional.** Indicates the which routing profile to snap the points to. Possible values:<br/><br/> • **driving** \[default\]<br/> • **transit**<sup>1</sup><br/>• **truck** <br/><br/><br/>**Example:** travelMode=driving <br/><br /> **Note**: <br/><br/> For travelMode=truck, the vehicle attributes can be defined in the POST body. Please see the template POST body with vehicle attributes below this table. For more details about vehicle attributes, please check the [Calculate a Truck Route API doc](./calculate-a-truck-route.md). <br /><br /> **Geographic Availability**: <br /> - `Driving` is available in routing markets seen in the [Geographic Coverage documentation](../../coverage/geographic-coverage.md) with the exception of China, Japan, and Korea. <br /> - `Truck` is available in Truck Routing markets seen in the [Geographic Coverage documentation](../../coverage/geographic-coverage.md). <br /> - `Transit` is available in markets seen in the [Transit Coverage documentation](../../coverage/transit-coverage/index.md). |
| `travelMode` | `mode` | **Optional.** Indicates the which routing profile to snap the points to. Possible values:<br/><br/> • **driving** \[default\]<br/> • **truck** <br/> • ~~transit~~ \[deprecated\]<br/><br/>**Example:** travelMode=driving <br/><br /> **Note**: <br/><br/> For travelMode=truck, the vehicle attributes can be defined in the POST body. Please see the template POST body with vehicle attributes below this table. For more details about vehicle attributes, please check the [Calculate a Truck Route API doc](./calculate-a-truck-route.md). <br /><br /> **Geographic Availability**: <br /> - `Driving` is available in routing markets seen in the [Geographic Coverage documentation](../../coverage/geographic-coverage.md) with the exception of China, Japan, and Korea. <br /> - `Truck` is available in Truck Routing markets seen in the [Geographic Coverage documentation](../../coverage/geographic-coverage.md). |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any additional information that can be given beyond "deprecated"? Why is it in square brackets?

Has it been deprecated (slated for retirement, meaning it will no longer be supported after a certain date) or retired (no longer supported)?


<sup>1</sup> `transit` will no longer be a valid `travelMode` as of 9/30/2024.

*Template POST body with vehicle attributes*

Expand All @@ -142,8 +141,7 @@ The following is a list of parameters that are supported by the Isochrone API.
"vehicleMinTurnRadius": number,
"vehicleAvoidCrossWind": bool,
"vehicleAvoidGroundingRisk": bool,
"vehicleHazardousMaterials": string,
"vehicleHazardousPermits": string
"vehicleHazardousMaterials": string
}
}
```
Expand Down
Loading