顶部的传单标签

Leaflet labels on top

我对传单还很陌生,希望得到一些建议。我使用 UN Clear map as a base map to which I add some polygons using a GeoJSON layer. I learned about a nice trick here,使用地图窗格在多边形顶部获取标签。我正在尝试使用 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);

@IvanSanchez 是正确的。如果您查看此图层的地图服务定义 (https://geoservices.un.org/arcgis/rest/services/ClearMap_WebTopo/MapServer), you will see Supports Dynamic Layers: false. As far as I can tell, this means the sublayers cannot be singled out and built into new dynamic layers. You can read a bit more about that here: esri TileLayer capabilities

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

我确实在 ArcGIS Online here 上找到了看起来像 baselayer 的东西,但它似乎对 public 不可用。我实际上会联系您引用的联合国网站,看看那里是否有人知道您如何才能访问底层。可能上面的任何参考层都可以。

抱歉告诉你这个坏消息。