【问题标题】:Leaflet labels on top顶部的传单标签
【发布时间】:2021-06-25 11:47:54
【问题描述】:

我对传单很陌生,想要一些建议。我使用UN Clear map 作为底图,我使用 GeoJSON 图层向其中添加了一些多边形。我学到了一个很好的技巧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);

【问题讨论】:

  • 我不认为联合国提供没有标签的底图(或只有标签的透明底图)。这是在两个不同的地图窗格中将它们显示为两个不同的L.TileLayers 的先决条件。

标签: javascript leaflet arcgis esri-leaflet


【解决方案1】:

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

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

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

很抱歉带来坏消息。

【讨论】:

  • 非常感谢你们。你节省了我一些时间,我也学到了一些东西。
猜你喜欢
  • 1970-01-01
  • 2018-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-14
  • 2016-02-17
  • 2016-02-01
相关资源
最近更新 更多