0

我对传单很陌生,想要一些建议。我使用UN Clear 地图作为底图,我使用 GeoJSON 图层向其中添加了一些多边形。我在这里学到了一个很好的技巧,使用地图窗格来获取多边形顶部的标签。我正在尝试使用 UN Clear Map 重新创建它,但标签仍位于多边形下方。我没有收到任何错误消息。我想我可能没有正确引用标签层,但不知道该怎么做。

简化代码:

map = L.map('map', {
    minZoom: 3,
    maxZoom: 10,
    worldCopyJump: true
    });

map.createPane('labels');
map.getPane('labels').style.zIndex = 850;

const mapLayer = esri.tiledMapLayer({
    url: "https://geoservices.un.org/arcgis/rest/services/ClearMap_WebTopo/MapServer/",
    maxZoom: 10,
    }).addTo(map);
map.setView([0, 0], 3);

const colorLayer = (L as any).geoJSON(GeoJsonData, geoJsonOptions).addTo(map);

const labelLayer = esri.tiledMapLayer({
    url:'https://geoservices.un.org/arcgis/rest/services/ClearMap_WebTopo/MapServer/0',
    pane: 'labels'}).addTo(map);
4

1 回答 1

0

@IvanSanchez 是正确的。如果您查看此图层的地图服务定义 ( https://geoservices.un.org/arcgis/rest/services/ClearMap_WebTopo/MapServer ),您将看到Supports Dynamic Layers: false。据我所知,这意味着子层不能被挑选出来并构建到新的动态层中。您可以在此处阅读更多相关信息:esri TileLayer 功能

不幸的是,您要么需要使用它们的基础数据作为要素图层从头开始构建这些图层(这是一项荒谬的工作,我一点也不推荐它),或者您必须去寻找其他底图/标签图层你喜欢。

我确实设法在此处找到了 ArcGIS Online 上的基础层,但它似乎不向公众提供。我实际上会联系您引用的联合国站点,看看那里是否有人知道您如何才能访问基础层。可能在此之上的任何参考层都可以。

关于这些坏消息我很遗憾。

于 2021-03-29T18:06:02.157 回答