Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Evolution : Ajouter un callback au centrage de la carte sur des coordonnées #315

Closed
slafayIGN opened this issue Dec 20, 2021 · 2 comments
Closed

Comments

@slafayIGN
Copy link

Bonjour,

Serait-il possible d'ajouter une option pour définir un callback quand la carte est centrée sur des coordonnées saisies dans le contrôle ol.control.GeoportalMousePosition si options.editCoordinates = true :

* @param {Boolean} [options.editCoordinates = false] - If true, coordinates from the MousePosition control can be edited by users to re-center the view. False by default.

Ce serait pour créer ou déplacer un Feature à cet endroit (par exemple) et pas uniquement centrer et placer le marqueur temporaire de _markerOverlay si celui-ci n'a pas été désactivé par options.positionMarker.hide.

S'il y a une meilleure façon de faire que d'ajouter une option, je suis preneur de suggestions.

@lowzonenose
Copy link
Contributor

Ok, on peut ajouter une callback de centrage sur les coordonnées saisies.

Ex. d’implémentation :

MousePosition.prototype.onMousePositionEditModeLocateClick = function () {
(...)
// fonction
var mapCenterFunction = this.options.mapCenterCallback;
// execution...
if (typeof mapCenterFunction === "function") {
  var view = this.getMap().getView();
  var center = view.getCenter(); // on transmet les coordonnées dans la projection de la carte
  mapCenterFunction.call(this, center);
}
};

Ex. d'utilisation :

var mouse = new ol.control.GeoportalMousePosition({
  editCoordinates : true,
  mapCenterCallback : function (e) {
    console.log(e); // coordonnées dans la projection de la carte : ex. [222638.98158654716, 6106854.83488507]
    console.log(this.getMap()); // instance de la carte : Map
    console.log(this); // instance de l'objet MousePosition
  }
});

Faut il d'autres informations dans la callback ?

@slafayIGN
Copy link
Author

Merci pour ta proposition.

En fait center n'est même pas indispensable comme paramètre car on pourrait le récupérer dans le callback avec this.getMap().getView().getCenter().

lowzonenose added a commit that referenced this issue Jan 17, 2022
* upgrade ol 6.9.0 et olms 6.7.0
> correctifs sur les pictogrammes du vecteur tuilé

* Ajout du mécanisme de désactivation des interactions sur tous les widgets
* issue #315 : ajout d'une callback de centrage de la carte
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants