Render - Get Map Image
Use to render a user-defined, rectangular image containing a map section using a zoom level ranging from 0 to 20.
Note
Azure Maps Render v1 service retirement
The Azure Maps Render v1 service is now deprecated and will be retired on 9/17/26. To avoid service disruptions, all calls to Render v1 API will need to be updated to use Render v2 API by 9/17/26.
The supported resolution range for the map image is from 1x1 to 8192x8192. If you are deciding when to use the static image service over the map tile service, you may want to consider how you would like to interact with the rendered map. If the map contents will be relatively unchanging, a static map is a good choice. If you want to support a lot of zooming, panning and changing of the map content, the map tile service would be a better choice.
Service also provides Image Composition functionality to get a static image back with additional data like; pushpins and geometry overlays with following Gen1 S0, S1 and Gen2 capabilities.
In Gen1 S0 you can:
- Render up to 5 pushpins specified in the request
- Provide one custom image for the pins referenced in the request
- Add labels to the pushpins
In Gen1 S1 and Gen2 you can:
- Render pushpins through Azure Maps Data Service
- Specify multiple pushpin styles
- Render circle, polyline and polygon geometry types.
- Render of supported GeoJSON geometry types uploaded through Azure Maps Data Service
For detailed examples, see the how-to guide Render custom data on a raster map.
Note : Either center or bbox parameter must be supplied to the API.
The supported Lat and Lon ranges when using the bbox parameter, are as follows:
Zoom Level | Max Lon Range | Max Lat Range |
---|---|---|
0 | 360.0 | 170.0 |
1 | 360.0 | 170.0 |
2 | 360.0 | 170.0 |
3 | 360.0 | 170.0 |
4 | 360.0 | 170.0 |
5 | 180.0 | 85.0 |
6 | 90.0 | 42.5 |
7 | 45.0 | 21.25 |
8 | 22.5 | 10.625 |
9 | 11.25 | 5.3125 |
10 | 5.625 | 2.62625 |
11 | 2.8125 | 1.328125 |
12 | 1.40625 | 0.6640625 |
13 | 0.703125 | 0.33203125 |
14 | 0.3515625 | 0.166015625 |
15 | 0.17578125 | 0.0830078125 |
16 | 0.087890625 | 0.0415039063 |
17 | 0.0439453125 | 0.0207519531 |
18 | 0.0219726563 | 0.0103759766 |
19 | 0.0109863281 | 0.0051879883 |
20 | 0.0054931641 | 0.0025939941 |
GET https://atlas.microsoft.com/map/static/png?api-version=1.0
GET https://atlas.microsoft.com/map/static/png?api-version=1.0&layer={layer}&style={style}&zoom={zoom}¢er={center}&bbox={bbox}&height={height}&width={width}&language={language}&view={view}&pins={pins}&path={path}
URI Parameters
Name | In | Required | Type | Description | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
format
|
path | True |
Desired format of the response. Possible value: png. |
||||||||||||||||||||||||||||
api-version
|
query | True |
string |
Version number of Azure Maps API. |
|||||||||||||||||||||||||||
bbox
|
query |
number[] |
Bounding box. Projection used - EPSG:3857. Format : 'minLon, minLat, maxLon, maxLat'. Note: Either bbox or center are required parameters. They are mutually exclusive. It shouldn’t be used with height or width. The maximum allowed ranges for Lat and Lon are defined for each zoom level in the table at the top of this page. |
||||||||||||||||||||||||||||
center
|
query |
number[] |
Coordinates of the center point. Format: 'lon,lat'. Projection used
Note: Either center or bbox are required parameters. They are mutually exclusive. |
||||||||||||||||||||||||||||
height
|
query |
integer int32 |
Height of the resulting image in pixels. Range is 1 to 8192. Default is 512. It shouldn’t be used with bbox. |
||||||||||||||||||||||||||||
language
|
query |
string |
Language in which search results should be returned. Should be one of supported IETF language tags, case insensitive. When data in specified language is not available for a specific field, default language is used. Please refer to Supported Languages for details. |
||||||||||||||||||||||||||||
layer
|
query |
Map layer requested. If layer is set to labels or hybrid, the format should be png. |
|||||||||||||||||||||||||||||
path
|
query |
string[] |
Path style and locations. Use this parameter to optionally add lines, polygons or circles to the image. The path style describes the appearance of the line and fill. (Be sure to properly URL-encode values of this parameter since it will contain reserved characters such as pipes and punctuation.) Path parameter is supported in Azure Maps account SKU starting with S1. Multiple instances of the path parameter allow to specify multiple geometries with their styles. Number of parameters per request is limited to 10 and number of locations is limited to 100 per path. To render a circle with radius 100 meters and center point at latitude 45°N and longitude 122°W using the default style, add the querystring parameter
Note that the longitude comes before the latitude. After URL encoding this will look like
All of the examples here show the path parameter without URL encoding, for clarity. To render a line, separate each location with a pipe character. For example, use
To render a polygon, last location must be equal to the start location. For example, use
Longitude and latitude values for locations of lines and polygons can be in the range from -360 to 360 to allow for rendering of geometries crossing the anti-meridian. Style ModifiersYou can modify the appearance of the path by adding style modifiers. These are added before the locations. Style modifiers each have a two-letter name. These abbreviated names are used to help reduce the length of the URL. To change the color of the outline, use the 'lc' style modifier and specify the color using the HTML/CSS RGB color format which is a six-digit hexadecimal number (the three-digit form is not supported). For example, to use a deep pink color which you would specify as #FF1493 in CSS, use
Multiple style modifiers may be combined together to create a more complex visual style.
Getting Path locations from Azure Maps Data StorageFor all Azure Maps account SKUs other than S0, the path location information can be obtained from Azure Maps Data Storage. After uploading a GeoJSON document containing path locations, the Data Storage service returns a Unique Data ID (UDID) that you can use to reference the data in the path parameter. To use the point geometry from an uploaded GeoJSON document as the path locations, specify the UDID in the locations section of the path parameter. For example,
Note the it is not allowed to mix path locations from Data Storage with locations specified in the path parameter. Style Modifier Summary
|
||||||||||||||||||||||||||||
pins
|
query |
string[] |
Pushpin style and instances. Use this parameter to optionally add pushpins to the image. The pushpin style describes the appearance of the pushpins, and the instances specify the coordinates of the pushpins and optional labels for each pin. (Be sure to properly URL-encode values of this parameter since it will contain reserved characters such as pipes and punctuation.) The Azure Maps account S0 SKU only supports a single instance of the pins parameter. Other SKUs allow multiple instances of the pins parameter to specify multiple pin styles. To render a pushpin at latitude 45°N and longitude 122°W using the default built-in pushpin style, add the querystring parameter
Note that the longitude comes before the latitude. After URL encoding this will look like
All of the examples here show the pins parameter without URL encoding, for clarity. To render a pin at multiple locations, separate each location with a pipe character. For example, use
The S0 Azure Maps account SKU only allows five pushpins. Other account SKUs do not have this limitation. Style ModifiersYou can modify the appearance of the pins by adding style modifiers. These are added after the style but before the locations and labels. Style modifiers each have a two-letter name. These abbreviated names are used to help reduce the length of the URL. To change the color of the pushpin, use the 'co' style modifier and specify the color using the HTML/CSS RGB color format which is a six-digit hexadecimal number (the three-digit form is not supported). For example, to use a deep pink color which you would specify as #FF1493 in CSS, use
Pushpin LabelsTo add a label to the pins, put the label in single quotes just before the coordinates. For example, to label three pins with the values '1', '2', and '3', use
There is a built in pushpin style called 'none' that does not display a pushpin image. You can use this if you want to display labels without any pin image. For example,
To change the color of the pushpin labels, use the 'lc' label color style modifier. For example, to use pink pushpins with black labels, use
To change the size of the labels, use the 'ls' label size style modifier. The label size represents the approximate height of the label text in pixels. For example, to increase the label size to 12, use
The labels are centered at the pushpin 'label anchor.' The anchor location is predefined for built-in pushpins and is at the top center of custom pushpins (see below). To override the label anchor, using the 'la' style modifier and provide X and Y pixel coordinates for the anchor. These coordinates are relative to the top left corner of the pushpin image. Positive X values move the anchor to the right, and positive Y values move the anchor down. For example, to position the label anchor 10 pixels right and 4 pixels above the top left corner of the pushpin image, use
Custom PushpinsTo use a custom pushpin image, use the word 'custom' as the pin style name, and then specify a URL after the location and label information. Use two pipe characters to indicate that you're done specifying locations and are starting the URL. For example,
After URL encoding, this would look like
By default, custom pushpin images are drawn centered at the pin coordinates. This usually isn't ideal as it obscures the location that you're trying to highlight. To override the anchor location of the pin image, use the 'an' style modifier. This uses the same format as the 'la' label anchor style modifier. For example, if your custom pin image has the tip of the pin at the top left corner of the image, you can set the anchor to that spot by using
Note: If you use the 'co' color modifier with a custom pushpin image, the specified color will replace the RGB channels of the pixels in the image but will leave the alpha (opacity) channel unchanged. This would usually only be done with a solid-color custom image. Getting Pushpins from Azure Maps Data StorageFor all Azure Maps account SKUs other than S0, the pushpin location information can be obtained from Azure Maps Data Storage. After uploading a GeoJSON document containing pin locations, the Data Storage service returns a Unique Data ID (UDID) that you can use to reference the data in the pins parameter. To use the point geometry from an uploaded GeoJSON document as the pin locations, specify the UDID in the locations section of the pins parameter. For example,
Note that only point and multipoint geometry, points and multipoints from geometry collections, and point geometry from features will be used. Linestring and polygon geometry will be ignored. If the point comes from a feature and the feature has a string property called "label", the value of that property will be used as the label for the pin. You can mix pin locations from Data Storage and pin locations specified in the pins parameter. Any of the pipe-delimited pin locations can be a longitude and latitude or a UDID. For example,
Scale, Rotation, and OpacityYou can make pushpins and their labels larger or smaller by using the 'sc' scale style modifier. This is a value greater than zero. A value of 1 is the standard scale. Values larger than 1 will make the pins larger, and values smaller than 1 will make them smaller. For example, to draw the pushpins 50% larger than normal, use
You can rotate pushpins and their labels by using the 'ro' rotation style modifier. This is a number of degrees of clockwise rotation. Use a negative number to rotate counter-clockwise. For example, to rotate the pushpins 90 degrees clockwise and double their size, use
You can make pushpins and their labels partially transparent by specifying the 'al' alpha style modifier. This is a number between 0 and 1 indicating the opacity of the pushpins. Zero makes them completely transparent (and not visible) and 1 makes them completely opaque (which is the default). For example, to make pushpins and their labels only 67% opaque, use
Style Modifier Summary
|
||||||||||||||||||||||||||||
style
|
query |
Map style to be returned. Possible values are main and dark. |
|||||||||||||||||||||||||||||
view
|
query |
The View parameter (also called the "user region" parameter) allows you to show the correct maps for a certain country/region for geopolitically disputed regions. Different countries/regions have different views of such regions, and the View parameter allows your application to comply with the view required by the country/region your application will be serving. By default, the View parameter is set to “Unified” even if you haven’t defined it in the request. It is your responsibility to determine the location of your users, and then set the View parameter correctly for that location. Alternatively, you have the option to set ‘View=Auto’, which will return the map data based on the IP address of the request. The View parameter in Azure Maps must be used in compliance with applicable laws, including those regarding mapping, of the country/region where maps, images and other data and third party content that you are authorized to access via Azure Maps is made available. Example: view=IN. Please refer to Supported Views for details and to see the available Views. |
|||||||||||||||||||||||||||||
width
|
query |
integer int32 |
Width of the resulting image in pixels. Range is 1 to 8192. Default is 512. It shouldn’t be used with bbox. |
||||||||||||||||||||||||||||
zoom
|
query |
integer int32 |
Desired zoom level of the map. Zoom value must be in the range: 0-20 (inclusive). Default value is 12. |
Request Header
Name | Required | Type | Description |
---|---|---|---|
x-ms-client-id |
string |
Specifies which account is intended for usage in conjunction with the Microsoft Entra ID security model. It represents a unique ID for the Azure Maps account and can be retrieved from the Azure Maps management plane Account API. To use Microsoft Entra ID security in Azure Maps see the following articles for guidance. |
Responses
Name | Type | Description |
---|---|---|
200 OK |
object |
This image is returned from a successful Get Map Static Image call Media Types: "application/json", "image/jpeg", "image/png", "image/pbf", "application/vnd.mapbox-vector-tile" Headers Content-Type: string |
Other Status Codes |
An unexpected error occurred. Media Types: "application/json", "image/jpeg", "image/png", "image/pbf", "application/vnd.mapbox-vector-tile" |
Security
AADToken
These are the Microsoft Entra OAuth 2.0 Flows. When paired with Azure role-based access control it can be used to control access to Azure Maps REST APIs. Azure role-based access controls are used to designate access to one or more Azure Maps resource account or sub-resources. Any user, group, or service principal can be granted access via a built-in role or a custom role composed of one or more permissions to Azure Maps REST APIs.
To implement scenarios, we recommend viewing authentication concepts. In summary, this security definition provides a solution for modeling application(s) via objects capable of access control on specific APIs and scopes.
Notes
- This security definition requires the use of the
x-ms-client-id
header to indicate which Azure Maps resource the application is requesting access to. This can be acquired from the Maps management API.
The Authorization URL
is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Microsoft Entra ID configurations.
*
The Azure role-based access control is configured from the Azure management plane via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs.
*
Usage of the Azure Maps Web SDK allows for configuration based setup of an application for multiple use cases.
- For more information on Microsoft identity platform, see Microsoft identity platform overview.
Type:
oauth2
Flow:
implicit
Authorization URL:
https://login.microsoftonline.com/common/oauth2/authorize
Scopes
Name | Description |
---|---|
https://atlas.microsoft.com/.default | https://atlas.microsoft.com/.default |
subscription-key
This is a shared key that is provisioned when you Create an Azure Maps account in the Azure portal or using PowerShell, CLI, Azure SDKs, or REST API.
With this key, any application can access all REST API. In other words, this key can be used as a master key in the account that they are issued in.
For publicly exposed applications, our recommendation is to use the confidential client applications approach to access Azure Maps REST APIs so your key can be securely stored.
Type:
apiKey
In:
query
SAS Token
This is a shared access signature token is created from the List SAS operation on the Azure Maps resource through the Azure management plane via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs.
With this token, any application is authorized to access with Azure role-based access controls and fine-grain control to the expiration, rate, and region(s) of use for the particular token. In other words, the SAS Token can be used to allow applications to control access in a more secured way than the shared key.
For publicly exposed applications, our recommendation is to configure a specific list of allowed origins on the Map account resource to limit rendering abuse and regularly renew the SAS Token.
Type:
apiKey
In:
header
Examples
Successful Static Image Request
Sample request
GET https://atlas.microsoft.com/map/static/png?api-version=1.0&layer=basic&style=main&zoom=2&bbox=1.355233,42.982261,24.980233,56.526017
Sample response
Content-Type: image/png
"{file}"
Definitions
Name | Description |
---|---|
Error |
The resource management error additional info. |
Error |
The error detail. |
Error |
Error response |
Localized |
The View parameter (also called the "user region" parameter) allows you to show the correct maps for a certain country/region for geopolitically disputed regions. Different countries/regions have different views of such regions, and the View parameter allows your application to comply with the view required by the country/region your application will be serving. By default, the View parameter is set to “Unified” even if you haven’t defined it in the request. It is your responsibility to determine the location of your users, and then set the View parameter correctly for that location. Alternatively, you have the option to set ‘View=Auto’, which will return the map data based on the IP address of the request. The View parameter in Azure Maps must be used in compliance with applicable laws, including those regarding mapping, of the country/region where maps, images and other data and third party content that you are authorized to access via Azure Maps is made available. Example: view=IN. Please refer to Supported Views for details and to see the available Views. |
Map |
Map style to be returned. Possible values are main and dark. |
Raster |
Desired format of the response. Possible value: png. |
Static |
Map layer requested. If layer is set to labels or hybrid, the format should be png. |
ErrorAdditionalInfo
The resource management error additional info.
Name | Type | Description |
---|---|---|
info |
object |
The additional info. |
type |
string |
The additional info type. |
ErrorDetail
The error detail.
Name | Type | Description |
---|---|---|
additionalInfo |
The error additional info. |
|
code |
string |
The error code. |
details |
The error details. |
|
message |
string |
The error message. |
target |
string |
The error target. |
ErrorResponse
Error response
Name | Type | Description |
---|---|---|
error |
The error object. |
LocalizedMapView
The View parameter (also called the "user region" parameter) allows you to show the correct maps for a certain country/region for geopolitically disputed regions. Different countries/regions have different views of such regions, and the View parameter allows your application to comply with the view required by the country/region your application will be serving. By default, the View parameter is set to “Unified” even if you haven’t defined it in the request. It is your responsibility to determine the location of your users, and then set the View parameter correctly for that location. Alternatively, you have the option to set ‘View=Auto’, which will return the map data based on the IP address of the request. The View parameter in Azure Maps must be used in compliance with applicable laws, including those regarding mapping, of the country/region where maps, images and other data and third party content that you are authorized to access via Azure Maps is made available. Example: view=IN.
Please refer to Supported Views for details and to see the available Views.
Name | Type | Description |
---|---|---|
AE |
string |
United Arab Emirates (Arabic View) |
AR |
string |
Argentina (Argentinian View) |
Auto |
string |
Return the map data based on the IP address of the request. |
BH |
string |
Bahrain (Arabic View) |
IN |
string |
India (Indian View) |
IQ |
string |
Iraq (Arabic View) |
JO |
string |
Jordan (Arabic View) |
KW |
string |
Kuwait (Arabic View) |
LB |
string |
Lebanon (Arabic View) |
MA |
string |
Morocco (Moroccan View) |
OM |
string |
Oman (Arabic View) |
PK |
string |
Pakistan (Pakistani View) |
PS |
string |
Palestinian Authority (Arabic View) |
QA |
string |
Qatar (Arabic View) |
SA |
string |
Saudi Arabia (Arabic View) |
SY |
string |
Syria (Arabic View) |
Unified |
string |
Unified View (Others) |
YE |
string |
Yemen (Arabic View) |
MapImageStyle
Map style to be returned. Possible values are main and dark.
Name | Type | Description |
---|---|---|
dark |
string |
Dark grey version of the Azure Maps main style |
main |
string |
Azure Maps main style |
RasterTileFormat
Desired format of the response. Possible value: png.
Name | Type | Description |
---|---|---|
png |
string |
An image in the png format. Supports zoom levels 0 through 18. |
StaticMapLayer
Map layer requested. If layer is set to labels or hybrid, the format should be png.
Name | Type | Description |
---|---|---|
basic |
string |
Returns an image containing all map features including polygons, borders, roads and labels. |
hybrid |
string |
Returns an image containing borders, roads, and labels, and can be overlaid on other tiles (such as satellite imagery) to produce hybrid tiles. |
labels |
string |
Returns an image of just the map's label information. |