Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Mon 20 May 2019 12:58

Alain_75077
Juste Inscrit !
Date d'inscription: 29 Nov 2018
Messages: 7

Disparition couche en vue satellite

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=token'
  }),
  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 ?

Dernière modification par Alain_75077 (Mon 20 May 2019 15:08)

Hors ligne

 

#2 Mon 20 May 2019 14:55

nworr
Participant actif
Date d'inscription: 10 Apr 2014
Messages: 74

Re: Disparition couche en vue satellite

Réponse rapide sans avoir tester :
en changeant l'ordre dans la tableau layers peut être ?

Code:

 layers: [baseLayer,Terrain,satellite,IGN,GPU,foncier2], // mettre foncier en dernier (ou après satellelite)

Hors ligne

 

#3 Mon 20 May 2019 15:10

Alain_75077
Juste Inscrit !
Date d'inscription: 29 Nov 2018
Messages: 7

Re: Disparition couche en vue satellite

Oh super merci merci ça à marcher, moi qui cherchaient des solutions super compliqués... Merci Beaucoup, Tu ma sauver !!!!

Dernière modification par Alain_75077 (Mon 20 May 2019 15:10)

Hors ligne

 

#4 Mon 20 May 2019 15:41

nworr
Participant actif
Date d'inscription: 10 Apr 2014
Messages: 74

Re: Disparition couche en vue satellite

De rien , a noter qu'il existe le control layerswitcher https://github.com/walkermatt/ol-layerswitcher qui créé un layerswitcher facilement.

Hors ligne

 

#5 Tue 21 May 2019 12:08

Alain_75077
Juste Inscrit !
Date d'inscription: 29 Nov 2018
Messages: 7

Re: Disparition couche en vue satellite

D'accord je vais regarder ça merci !!

Hors ligne

 

Pied de page des forums

Powered by FluxBB