Message posté par : Alain_75077
----------------------------------------
Bonjour à tous,
Dans une carte OpenLayers j'ai créer une couche personnalisé qui récupère de la
géométrie stocker en base de donnée et je la mets en évidence à l'aide d'un code
couleur.
Dans mon application je possède aussi un fond de carte stamen et une vue satellite
(mapbox), je déclare mes fond de cartes comme ceci :
-----------------
Code :
var baseLayer = new TileLayer({
source: new OSM({
layer: 'terrain'
}),
name: 'baseLayer',
visible : true
});
var Terrain = new TileLayer({
source: new Stamen({
layer: 'terrain'
}),
name: 'Terrain',
visible : false,
});
var satellite = new TileLayer({
source: new XYZ({
url:
'https://api.mapbox.com/styles/v1/mapbox/satellite-streets-v9/tiles/256/{z}/{x}/{y}?access_token=pk.eyJ1IjoiYWJvdXF1ZXR5IiwiYSI6ImNqdGE5bTRuaDA4a3Y0M2w4OGRxZDdoajQifQ.ddEVnvpYjmAEQbfCw43p1Q'
}),
name: 'mapbox',
visible : false,
});
var map = new Map({
layers: [baseLayer,Terrain,foncier2,satellite,IGN,GPU],
target: 'map',
// container: 'map',
renderer:'canvas',
view: new View({
center: fromLonLat([2, 48]),
zoom: 6
}),
});
-----------------
J'ai donc créer aussi une fonction pour toujours afficher ma couche lors des
changements de fond et afficher le fond choisis :
-----------------
Code :
$('.fonddecarte').change(function() {
var layer = $(this).val();
map.getLayers().getArray().forEach(function(e) {
foncier2.setVisible(true)
var name = e.get('name');
e.setVisible(name == layer);
});
});
-----------------
Mais malheureusement quand je passe à un fond de carte à vue satellite ma couche
disparaît, auriez vous une idée pourquoi ? Ma fonction est mauvaise ?
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=321367#p321367
Pour y répondre : geolibre_web(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net