-4

我想更改OpenLayers地图上某个地方的文字,需要将其从波斯湾更改为阿拉伯湾

我试图查看是否有任何方法可以使用 OpenLayers API 文档进行此更改,但没有找到运气。

https://openlayers.org/en/latest/apidoc/

以下是地图位置

在此处输入图像描述

以下是代码:

import TileLayer from 'ol/layer/Tile';
import VectorLayer from 'ol/layer/Vector';

....


vectorSource = new VectorSource({
    // url: '/assets/data/countries.geojson',
    url: '/assets/data/countries.json',
    format: new GeoJSON()
  });
  

  mapLayer = new VectorLayer({
    source: this.vectorSource,
    declutter: true
  });

 
  markerLayer = new VectorLayer({
    source: new VectorSource({}),
    style: this.mapStyle
  });

  linesLayer = new VectorLayer({
    source: new VectorSource({}),
    style: this.lineStyle
  });
....

有什么办法可以改变这个吗?我仍在通过OpenLayers API来查找是否存在。

4

2 回答 2

2

您不能TileLayer使用 OpenLayers API 更改 a 上的标签,因为地图图像以 png 图像的形式提供,OpenLayers 在接收到它们时会呈现这些图像。

如果您的图层是 a VectorTileLayer,则您可以访问要素属性,并且可以修改它们的值。

如果您继续使用TileLayerMapbox 中的数据,就像您目前所做的那样,您可以使用 Mapbox Studio 创建自定义样式,您可以在其中更改标签作为样式的一部分。

于 2020-08-28T12:11:24.207 回答
0

我得到了解决方案,这可以通过在https://www.mapbox.com/mapbox-studio/ ( MapBox Studio ) 中编辑地图样式来实现,OpenLayers 与您的地图内容无关。

我创建了一个自定义样式并将 URL 集成到我们的应用程序中,然后一切都很好。

于 2020-09-09T10:25:15.230 回答