Suite

Définir l'attribution dans OpenLayers3


Impossible de définir les options d'attribution de la source. Quel est le bon moyen de le faire?

J'ai essayé ces deux approches> (Mon attribution ne change pas : est ouverte et avec des étiquettes par défaut)

var tile_photo = new ol.layer.Tile({ source: new ol.source.TileWMS({ attributions: [ new ol.Attribution({ html: 'TEXTE', collapsed:true, tipLabel:'My attribution' }) ],… }) });

et

source: new ol.source.TileWMS({ attributions: [ new ol.Attribution({ html: 'TEXTE', options : { repliable : true, label : 'A', collapsed : true, tipLabel : 'yooo' } }) ],…

C'est parce que vous utilisez des options au mauvais endroit :

Se référer à la doc APIol.Attributionaccepte seulementhtmlComme une option.

Vous devez modifier le contrôle par défaut pour l'attribution et cela se fait à l'aide d'unol.control.Attribution. Voir la doc sur ce contrôle.

Vous devez créer un nouveau contrôle comme ci-dessous (emprunté à l'échantillon officiel d'attribution)

var attribution = new ol.control.Attribution({ repliable : vrai, étiquette : 'A', replié : vrai, tipLabel : 'yooo' });

et dans la carte ajouter

var map = new ol.Map({ cible : 'map', contrôles : ol.control.defaults({ attribution : false }).extend([attribution]) });

Leol.control.defaults({ attribution: false }).extend([attribution])signifie utiliser les contrôles par défaut à l'exception de l'attribution par défaut (attribution : faux) puis ajoutez le nouveauattributionobjet à liste de contrôles à l'aide d'un tableau (.extend([attribution]))


Voir la vidéo: Angular-Openlayers Part 1 - Basic Setup (Octobre 2021).