geoportal-extensions icon indicating copy to clipboard operation
geoportal-extensions copied to clipboard

Erreur - OpenLayers 7.0.0 - class constructors must be invoked with 'new'

Open A-d-r-i opened this issue 2 years ago • 5 comments

Votre environnement

  • Version de l'API : 3.2.14
  • OpenLayers : 7.0.0
  • Nom du navigateur et sa version : Firefox 104 (+ Chrome et Edge)
  • Operating System et sa version (desktop ou mobile) : W10

Type d'issue

  • [X] Report de bug
  • [ ] Requête d'une nouvelle fonctionnalité

Contexte

Suite au passage à OpenLayers 7.0.0, j'obtiens une erreur dans la console (et pas d'affichage de ma carte). Voici l'erreur : class constructors must be invoked with 'new'

image

Pour les bugs : Etapes à suivre pour le reproduire

window.onload = function go() {
	
	var layer_osm = new ol.layer.Tile({
		source: new ol.source.OSM({attributions: [
		'© A-d-r-i',ol.source.OSM.ATTRIBUTION	]}),
		opacity: 1
	});
	
	var layer_ortho = new ol.layer.Tile({
		source: new ol.source.GeoportalWMTS({layer: "ORTHOIMAGERY.ORTHOPHOTOS"}),
		opacity: 0.3
	});
	
	var map = new ol.Map({
		target: 'map',
		layers: [
			layer_osm,
			layer_ortho
		],
		target: 'map',
		view: new ol.View({
			center: ol.proj.transform([2, 47], 'EPSG:4326', 'EPSG:3857'),
			zoom: 6
		})
	});

	
}

Comportement attendu

Afficher une carte OSM avec un fond ortho de 0.3 d'opacité (fonctionne parfaitement avec OpenLayers 6.9.0)

Comportement actuel

N'affiche pas la carte : page vierge.

Merci pour votre lecture et retours !

A-d-r-i avatar Aug 25 '22 10:08 A-d-r-i

Bonjour,

vous êtes certainement notre premier bêta testeur sur ol7 :joy:

Malheureusement, nous n'avons pas encore entrepris les action nécessaires à la mise à niveau de nos API pour qu'elles soient compatibles avec OpenLayers 7. Pour l'instant, nous assurons donc la compatibilité qu'avec OpenLayers 6 (manifestement, il y a quelques problèmes avec ol7).

Nous prévoyons de nous pencher sur la question courant septembre, nous essayerons de communiquer un planning de mise à niveau.

En attendant, n'hésitez pas à nous faire d'autres retours si vous creusez la question et que vous analysez les problèmes rencontrés (issues, ou même PR).

Bonne journée, et merci pour votre retour.

elias75015 avatar Aug 25 '22 14:08 elias75015

vous êtes certainement notre premier bêta testeur sur ol7

J'imagine bien ! 😂 Merci beaucoup pour votre retour.

Pour quelques détails en plus, les "widgets/contrôles" ne fonctionnent pas non plus (recherche/switcher etc...).

Nous prévoyons de nous pencher sur la question courant septembre, nous essayerons de communiquer un planning de mise à niveau.

Merci pour les infos. Je reste sur OL 6.9 pour ma prod, rien de pressant !

A-d-r-i avatar Aug 25 '22 14:08 A-d-r-i

Bonjour,

J'utilise les cartes Geoportail avec openlayers sans le sdk et les extensions geoportail.

Je viens de faire la mise à jour de ol 6.9 à ol 7.2.2 (latest), j'obtiens le même message d'erreur : class constructors must be invoked with 'new' .

Il faut revoir les chemins d'import : exemple :

-import CircleStyle from 'ol/src/style/Circle'
+import CircleStyle from 'ol/style/Circle'

Après cela, un build fonctionne sans erreur.

Cordialement,

Eric

eldk avatar Jan 20 '23 12:01 eldk

Bonjour,

Visiblement, j'ai un problème similaire car j'obtiens le même message d'erreur en utilisant la version 7.4 avec le fichier ol3-sidebar.js

image

Par contre, je ne comprend pas la réponse précédente de eldk.

Est-ce que quelqu'un pourrait m'expliquer de manière plus détaillée comment résoudre le problème s'il vous plaît?

Je vous remercie pour votre attention et votre compréhension.

Cordialement,

Sofian

Sof-Toulouse avatar Jul 11 '23 22:07 Sof-Toulouse

Bonjour, pour information nou travaillons à une mise à jour des extensions pour une compatibilité avec OpenLayers 8

elias75015 avatar Mar 25 '24 09:03 elias75015

Bonjour,

Où en est la compatibilité avec les versions récentes d'OpenLayers? Je ne parviens pas à trouver l'information.

Mysterius avatar Oct 15 '24 15:10 Mysterius

Bonjour,

nous n'avons pour le moment pas communiqué dessus, mais une nouvelle version des extensions Géoplateforme pour OpenLayers est pour le moment disponible en bêta, mais pas encore publiées sur les dépôts. Nous communiquerons plus amplement quand nous estimerons cela pertinent.

Cela dit, il est d'ores et déjà possible de tester cette version qui est publiée sur un nouveau dépôt dédié uniquement aux extensions Géoplateforme pour OpenLayers : https://github.com/IGNF/geopf-extensions-openlayers

La compatibilité est assurée avec OpenLayers 8.

En plus de cette mise à jour de compatibilité avec OpenLayers, cette nouvelle version en cours de développement propose une compilation double :

  • Classique (avec le style par défaut)
  • DSFR (avec le style du Design System de l'Etat)

Attention : pour utiliser ce style DSFR, il faut que vous entriez dans le périmètre d'application nécessaire : http://www.systeme-de-design.gouv.fr/prise-en-main-et-perimetre/perimetre-d-application/

elias75015 avatar Oct 15 '24 17:10 elias75015

Merci pour votre réponse !

Mysterius avatar Oct 16 '24 08:10 Mysterius

Les extensions Géoplateforme pour OpenLayers évoluent : nouveau dépôt, nouveau package, nouvelles fonctionnalités.

Compatibles avec OpenLayers 8 et supérieures, elles sont pour l'instant publiées en version bêta (1.0.0-beta.0) et sous la licence AGPL 3.

Le dépôt GitHub : https://github.com/IGNF/geopf-extensions-openlayers Le package NPM : https://www.npmjs.com/package/geopf-...ons-openlayers

Le changelog complet de cette nouvelle version est disponible ici : https://github.com/IGNF/geopf-extens...g/1.0.0-beta.0

On notera en nouveautés :

  • un mode de rendu "Classique" et un nouveau mode "DSFR" (Design System de l'Etat) réservé aux sites gouvernementaux (cf https://www.systeme-de-design.gouv.f...-d-application) : voir les différences sur cette page de démo
  • un widget "territories" permettant de se centrer sur un territoire voulu
  • un widget "catalogue" pour proposer un catalogue de données
  • une barre de recherche paramétrable

Les extensions Géoplateforme pour Leaflet et iTowns sont toujours maintenues et disponibles sur ce dépôt : https://github.com/IGNF/geoportal-extensions

Attention, ces extensions sont toujours en version bêta, vouées à évoluer souvent et toujours en développement. Nous avons essayé de mettre à jour la documentation au mieux (voir ici et le README), mais si vous constatez des erreurs, n'hésitez pas à nous les signaler en issue sur le dépôt GitHub.

Bonne journée,

Elias Couppé

elias75015 avatar Nov 27 '24 11:11 elias75015