Chcę zmienić tekst miejsca na mapie OpenLayers , trzeba go zmienić z Zatoki Perskiej na Zatokę Perską

Próbowałem sprawdzić, czy jest jakikolwiek sposób, abym mógł dokonać tej zmiany za pomocą dokumentacji API OpenLayers i nie znalazłem szczęścia.

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

Poniżej znajduje się lokalizacja na mapie

enter image description here

Poniżej znajduje się kod:

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
  });
....

Czy jest jakiś sposób, aby to zmienić? Nadal przeglądam OpenLayers API , aby sprawdzić, czy mimo to istnieje.

-4
Praveen Rao Chavan.G 28 sierpień 2020, 11:38

2 odpowiedzi

Najlepsza odpowiedź

Nie można zmieniać etykiet w TileLayer za pomocą interfejsu API OpenLayers, ponieważ obraz mapy jest dostarczany jako obrazy png, które OpenLayers renderuje w miarę ich odbierania.

Gdyby Twoja warstwa była VectorTileLayer, miałbyś dostęp do atrybutów obiektu i mógłbyś modyfikować ich wartości.

Jeśli nadal będziesz używać TileLayer z danymi z Mapbox, tak jak robisz to obecnie, możesz utworzyć własny styl za pomocą Mapbox Studio, w którym możesz zmienić etykiety jako część stylu.

2
ahocevar 28 sierpień 2020, 12:11

Mam na to rozwiązanie, można to osiągnąć, edytując styl mapy w https: // www. mapbox.com/mapbox-studio/ (MapBox Studio), OpenLayers nie ma nic wspólnego z zawartością twojej mapy.

Stworzyłem własny styl i zintegrowałem adres URL z naszą aplikacją, a potem wszystko było w porządku.

0
Praveen Rao Chavan.G 9 wrzesień 2020, 10:25