You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过Azure Maps Render REST API获取无内置图标的地图瓦片?

如何通过Azure Maps Render REST API获取无内置图标的地图瓦片

问题概述

我正在使用Azure Maps Render - Get Map Tile REST API,想了解是否可以获取不含Azure内置图标的地图瓦片,因为我主要用这些瓦片来展示自己的图标。
我通常在缩放级别16下展示瓦片,此时会出现大量Azure内置图标(如交通站)。
我认为Web SDK可以实现该需求(若有误请指正),但我希望使用REST API。遗憾的是,Azure提供的所有microsoft.base系列样式都包含这些图标。

解决方案

完全可以通过REST API实现,不需要依赖Web SDK。核心方法是使用自定义样式隐藏内置POI图标及标签,再通过该自定义样式的ID请求瓦片:

  1. 创建自定义样式

    • 登录Azure Maps Studio,进入「样式编辑器」,选择基于microsoft.base.road(或你需要的基础样式)创建新样式
    • 在左侧图层列表中,找到所有包含POI图标/标签的图层(如poi-icon、poi-label等),将它们的「可见性」设置为「隐藏」
    • 保存自定义样式,获取该样式的tilesetId(格式为custom.{唯一标识符})
  2. 修改API请求
    将原请求中的tilesetId替换为自定义样式的ID即可。修改后的代码示例如下:

public function getMapTile(int $x, int $y, int $zoom): string
{
    $response = $this->getDataFromAPI('/map/tile', [
        'x' => $x,
        'y' => $y,
        'zoom' => $zoom,
        'tileSize' => 256,
        'tilesetId' => 'custom.xxxxxxxxx', // 替换为你的自定义样式ID
        'api-version' => '2022-08-01',
    ]);

    if (!$response->successful()) {
        throw new Exception('Couldn\'t fetch tile data from azuremaps API');
    }

    return $response->body();
}

补充说明

  • 自定义样式支持精细控制图层显示,你可以根据需求只隐藏特定类型的POI图标,保留其他必要元素
  • 若需要更轻量化的瓦片,也可以选择Azure Maps提供的无标签基础样式(如microsoft.base.road.nolabels,部分区域可用),但自定义样式的灵活性更高

内容的提问来源于stack exchange,提问作者HelloWorld

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 07:17:45