是否可以从 Azure 地图中删除标签?
Is it possible to remove labels from Azure maps?
我想使用 Azure Maps 渲染静态地图(作为图像),它只显示基本的世界视图和我将放在上面的几个图钉。我不想要显示海洋和国家名称的标签层。
查看 Azure Maps 代码示例 (https://azuremapscodesamples.azurewebsites.net/) 我似乎找不到任何可以让我们简化地图的东西。
Google 地图通过将标签的可见性设置为 false 来支持这一点。旧的 Microsoft Maps 通过将 labelOverlay 设置为隐藏来支持这一点。我想制作这样的东西:https://snazzymaps.com/style/209544/no-labels
如何将所有标签隐藏在 Azure 地图(或 Bing 地图中)以便我可以得到一个简单的图像,其中我的图钉设置了我的标签,并删除了所有其他标签?
API 没有关于此的记录,但有一种不受支持的方法可以做到这一点。 Azure Maps 中的底图使用开放标准的 Mapbox Vector Tile 样式模式。可以访问基础地图图层并隐藏您想要的任何标签图层。这是隐藏底图中所有标签的代码示例:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
<link rel="stylesheet" href="https://atlas.microsoft.com/sdk/css/atlas.min.css?api-version=1" type="text/css" />
<script src="https://atlas.microsoft.com/sdk/js/atlas.min.js?api-version=1"></script>
<script type='text/javascript'>
var map;
function GetMap() {
map = new atlas.Map('myMap', {
authOptions: {
authType: 'subscriptionKey',
subscriptionKey: '<YOUR AZURE MAPS KEY>'
}
});
map.events.add('ready', function () {
var layers = map.map.getStyle().layers;
for (var i = 0; i < layers.length; i++) {
if (layers[i].type == 'symbol' && layers[i].source == 'vectorTiles' && layers[i].layout && layers[i].layout['text-field'] && layers[i].layout['text-field'] !== '') {
map.map.setLayoutProperty(layers[i].id, 'visibility', 'none');
}
}
//Add any your post map load code here.
});
}
</script>
</head>
<body onload="GetMap()">
<div id="myMap" style="height:100vh"></div>
</body>
</html>
我想使用 Azure Maps 渲染静态地图(作为图像),它只显示基本的世界视图和我将放在上面的几个图钉。我不想要显示海洋和国家名称的标签层。
查看 Azure Maps 代码示例 (https://azuremapscodesamples.azurewebsites.net/) 我似乎找不到任何可以让我们简化地图的东西。
Google 地图通过将标签的可见性设置为 false 来支持这一点。旧的 Microsoft Maps 通过将 labelOverlay 设置为隐藏来支持这一点。我想制作这样的东西:https://snazzymaps.com/style/209544/no-labels
如何将所有标签隐藏在 Azure 地图(或 Bing 地图中)以便我可以得到一个简单的图像,其中我的图钉设置了我的标签,并删除了所有其他标签?
API 没有关于此的记录,但有一种不受支持的方法可以做到这一点。 Azure Maps 中的底图使用开放标准的 Mapbox Vector Tile 样式模式。可以访问基础地图图层并隐藏您想要的任何标签图层。这是隐藏底图中所有标签的代码示例:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
<link rel="stylesheet" href="https://atlas.microsoft.com/sdk/css/atlas.min.css?api-version=1" type="text/css" />
<script src="https://atlas.microsoft.com/sdk/js/atlas.min.js?api-version=1"></script>
<script type='text/javascript'>
var map;
function GetMap() {
map = new atlas.Map('myMap', {
authOptions: {
authType: 'subscriptionKey',
subscriptionKey: '<YOUR AZURE MAPS KEY>'
}
});
map.events.add('ready', function () {
var layers = map.map.getStyle().layers;
for (var i = 0; i < layers.length; i++) {
if (layers[i].type == 'symbol' && layers[i].source == 'vectorTiles' && layers[i].layout && layers[i].layout['text-field'] && layers[i].layout['text-field'] !== '') {
map.map.setLayoutProperty(layers[i].id, 'visibility', 'none');
}
}
//Add any your post map load code here.
});
}
</script>
</head>
<body onload="GetMap()">
<div id="myMap" style="height:100vh"></div>
</body>
</html>