David Thielen Asked: 2023-12-01 00:36:40 +0800 CST2023-12-01 00:36:40 +0800 CST 2023-12-01 00:36:40 +0800 CST 如何使用 Azure 地图服务获取缩略图? 772 如何使用 Azure Map 服务返回如下位图: 指定的尺寸(我的用例为 256 x 256 像素) 指定范围,例如 100 英里 x 100 英里 以指定的纬度/经度为中心 用大头针固定纬度/经度。 1 个回答 Voted Best Answer rbrundritt 2023-12-01T02:12:06+08:002023-12-01T02:12:06+08:00 Azure Maps 和许多其他地图平台(Big Maps、Google Maps、Mapbox...)的静态地图服务使用整数缩放级别基于四叉树切片架构进行缩放,如下所述:https: //learn.microsoft.com/ en-us/azure/azure-maps/zoom-levels-and-tile-grid?tabs=csharp因此,使用这些服务不会让您获得代表 100 英里 x 100 英里区域的图像,但您可以根据缩放级别比例获得相似的比例。100 英里为 160934.4 米,如果图像大小为 256 像素,则每像素为 628.65 米。根据上面提供的文档,缩放级别 8 可能是最接近的(赤道处每像素 611 米,如果您想显示更多区域,可以尝试缩放级别 7)。 现在您已经有了可以使用的缩放级别,您可以采用中心点并使用该服务根据文档轻松创建带有图钉的图像: https://learn.microsoft.com/en-us/rest/api/maps/render-v2/get-map-static-image?view=rest-maps-2022-08-01&tabs=HTTP 该服务返回的图像格式是 PNG,没有 BMP 选项,但这应该不是什么大问题,因为如果您确实需要 BMP,您可以通过代码轻松转换为该格式。 为了居中,您可以使用center查询参数。它接受“经度,纬度”值。 要将图钉添加到中心,您可以使用相同的坐标并使用pins查询参数。有很多选项可用于自定义图钉在地图上的显示方式,因此您需要查看文档以按照您想要的方式进行自定义。 下面是一个简单的示例,它以缩放级别 8 创建西雅图(纬度:47.612965,经度:-122.338000)的地图,并将默认图钉图标添加到中心。宽度/高度设置为 256 像素。此外,我还设置了 https://atlas.microsoft.com/map/static/png?api-version=2022-08-01&layer=basic&style=main&zoom=8¢er=-122.338000,47.612965&height=256&width=256&pins=default||-122.338000%2047.612965&subscription-key=<Your Azure Maps Key> 生成的图像如下所示: 现在,话虽如此,如果您要在网页上显示此内容,我强烈建议您考虑使用交互式 Web SDK,因为它将使用缓存在用户浏览器中的地图图块,并且随着时间的推移,生成的事务会显着减少。使用图块的小型交互式地图将在第一次加载时生成一小部分事务,并且由于图块被缓存而在一段时间内没有事务(即使用户关闭浏览器并在几天后返回)。使用静态地图服务时,每个请求都会生成一个事务(每次加载/显示图像时),并且根据服务条款不允许缓存。使用交互式地图控件时,您还有更多的样式选项,并且如果需要,还可以访问卫星图像。
Azure Maps 和许多其他地图平台(Big Maps、Google Maps、Mapbox...)的静态地图服务使用整数缩放级别基于四叉树切片架构进行缩放,如下所述:https: //learn.microsoft.com/ en-us/azure/azure-maps/zoom-levels-and-tile-grid?tabs=csharp因此,使用这些服务不会让您获得代表 100 英里 x 100 英里区域的图像,但您可以根据缩放级别比例获得相似的比例。100 英里为 160934.4 米,如果图像大小为 256 像素,则每像素为 628.65 米。根据上面提供的文档,缩放级别 8 可能是最接近的(赤道处每像素 611 米,如果您想显示更多区域,可以尝试缩放级别 7)。
现在您已经有了可以使用的缩放级别,您可以采用中心点并使用该服务根据文档轻松创建带有图钉的图像:
https://learn.microsoft.com/en-us/rest/api/maps/render-v2/get-map-static-image?view=rest-maps-2022-08-01&tabs=HTTP
该服务返回的图像格式是 PNG,没有 BMP 选项,但这应该不是什么大问题,因为如果您确实需要 BMP,您可以通过代码轻松转换为该格式。
为了居中,您可以使用
center
查询参数。它接受“经度,纬度”值。要将图钉添加到中心,您可以使用相同的坐标并使用
pins
查询参数。有很多选项可用于自定义图钉在地图上的显示方式,因此您需要查看文档以按照您想要的方式进行自定义。下面是一个简单的示例,它以缩放级别 8 创建西雅图(纬度:47.612965,经度:-122.338000)的地图,并将默认图钉图标添加到中心。宽度/高度设置为 256 像素。此外,我还设置了
https://atlas.microsoft.com/map/static/png?api-version=2022-08-01&layer=basic&style=main&zoom=8¢er=-122.338000,47.612965&height=256&width=256&pins=default||-122.338000%2047.612965&subscription-key=<Your Azure Maps Key>
生成的图像如下所示:
现在,话虽如此,如果您要在网页上显示此内容,我强烈建议您考虑使用交互式 Web SDK,因为它将使用缓存在用户浏览器中的地图图块,并且随着时间的推移,生成的事务会显着减少。使用图块的小型交互式地图将在第一次加载时生成一小部分事务,并且由于图块被缓存而在一段时间内没有事务(即使用户关闭浏览器并在几天后返回)。使用静态地图服务时,每个请求都会生成一个事务(每次加载/显示图像时),并且根据服务条款不允许缓存。使用交互式地图控件时,您还有更多的样式选项,并且如果需要,还可以访问卫星图像。