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

Ajout de l'edition des coordonnées #117

Merged
merged 29 commits into from
Jun 29, 2017
Merged

Ajout de l'edition des coordonnées #117

merged 29 commits into from
Jun 29, 2017

Conversation

pprev94
Copy link
Contributor

@pprev94 pprev94 commented May 24, 2017

Possibilité de pouvoir effectuer une recherche via la nouvelle option editCoordinates (false par défaut)

@gcebelieu gcebelieu requested a review from lboulanger May 24, 2017 09:18
@gcebelieu gcebelieu requested review from gcebelieu and removed request for lboulanger May 24, 2017 13:34
@lowzonenose lowzonenose self-requested a review May 29, 2017 09:03
@gcebelieu
Copy link
Member

@pprev94 : premier retour, il faudrait résoudre les erreurs de style de codage (erreurs jscs) qui empêchent la compilation travis de passer :

https://travis-ci.org/IGNF/geoportal-extensions/builds/235557792?utm_source=github_status&utm_medium=notification

Tu as accès aux logs ?

Copy link
Member

@gcebelieu gcebelieu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Une remarque de fond : je préfèrerais que la saisie des coordonnées se fasse directement dans le panneau d'affichage des coordonnées actuel (qu'il faudrait modifier pour l'occasion) plutôt que dans un nouveau panneau : cela complique l'ergonomie du widget.

  • une remarque sur la validation de la saisie : la gestion du séparateur "," non autorisé est perturbante car elle positionne l'internaute à un endroit non voulu sans rien dire

  • un détail : attention aux indentations (même dans les exemples) avec des tabulations : elles ne sont pas autorisées dans ce projet utiliser des indentations à quatre espaces à la place.

@@ -78,6 +78,7 @@

var mp = new MousePosition({
collapsed : false,
editCoordinates : true,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

attention : ne pas utiliser de tabulations pour l'indentation !

@@ -113,6 +113,9 @@ define([], function () {
div.className = "GPpanel";

div.appendChild(this._createMousePositionPanelHeaderElement());
if (this.options.editCoordinates) {
div.appendChild(this._createEditCoordinatesPanelElement());
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pour moi, la saisie des coordonnées doit se faire dans le même panneau que celui de l'affichage des coordonnées.
=> ne pas créer de nouveau panneau mais réutiliser celui de l'affichage en modifiant les types d'input qui les affichent. Cf. fonction _createMousePositionPanelBasicCoordinateElement(), à laquelle on pourrait passer l'option "editCoordinates" en paramètre

},

/** ... */
_createBasicEditCoordinatesElement : function (coordType) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Attention à la validation de la saisie : lorsqu'on saisit une valeur avec une "," au lieu d'un "." comme séparateur, le widget ne tient pas compte de la partie après la virgule mais n'affiche aucun message ... Il faudrait : soit empêcher le positionnement en indiquant que la saisie n'est pas bonne, soit changer à la volée, la "," en ".".

@gcebelieu
Copy link
Member

ça ne semble pas très bien marcher :

  • En testant sur l'exemple MousePosition/amd-all-options.html
  1. l'affichage des input est décalé par rapport aux labels :

xy-decale

Il faudrait qu'on ait la valeur à la suite du label (comme avant) :
"x : 455544"
"y : 987878"

Il faudrait aussi que les contours des inputs ne soient pas visibles (comme avant) : ce n'est pas bloquant, on peut régler cela dans un second temps.

  1. ensuite lorsqu'on change de système de coordonnées (passage en géographique par exemple), l'affichage ne se fait plus :

lonlat

Et on a une erreur dans la console :

14:28:58,406 TypeError: elLat is null 1 MousePositionDOM.js:622:21
	MousePositionDOM.GPdisplayCoords http://localhost/gilles/apiv3/geoportal-extensions/src/Common/Controls/MousePositionDOM.js:622:21
	MousePosition.prototype._setCoordinate http://localhost/gilles/apiv3/geoportal-extensions/src/Ol3/Controls/MousePosition.js:1004:9
	MousePosition.prototype.onMouseMove http://localhost/gilles/apiv3/geoportal-extensions/src/Ol3/Controls/MousePosition.js:1058:9
	ol.events.bindListener_/boundListener http://localhost/gilles/apiv3/geoportal-extensions/lib/ol3/ol-debug.js:6671:12
	ol.events.EventTarget.prototype.dispatchEvent http://localhost/gilles/apiv3/geoportal-extensions/lib/ol3/ol-debug.js:7091:11
	ol.Map.prototype.handleMapBrowserEvent http://localhost/gilles/apiv3/geoportal-extensions/lib/ol3/ol-debug.js:31494:7
	ol.events.bindListener_/boundListener http://localhost/gilles/apiv3/geoportal-extensions/lib/ol3/ol-debug.js:6671:12
	ol.events.EventTarget.prototype.dispatchEvent http://localhost/gilles/apiv3/geoportal-extensions/lib/ol3/ol-debug.js:7091:11
	ol.MapBrowserEventHandler.prototype.relayEvent_ http://localhost/gilles/apiv3/geoportal-extensions/lib/ol3/ol-debug.js:12471:3
	ol.events.bindListener_/boundListener http://localhost/gilles/apiv3/geoportal-extensions/lib/ol3/ol-debug.js:6671:12
	ol.events.EventTarget.prototype.dispatchEvent http://localhost/gilles/apiv3/geoportal-extensions/lib/ol3/ol-debug.js:7091:11
	ol.pointer.PointerEventHandler.prototype.fireEvent http://localhost/gilles/apiv3/geoportal-extensions/lib/ol3/ol-debug.js:12122:3
	ol.pointer.PointerEventHandler.prototype.move http://localhost/gilles/apiv3/geoportal-extensions/lib/ol3/ol-debug.js:11990:3
	ol.pointer.MouseSource.prototype.mousemove http://localhost/gilles/apiv3/geoportal-extensions/lib/ol3/ol-debug.js:10630:5
	bound  self-hosted:915:17
	ol.pointer.PointerEventHandler.prototype.eventHandler_ http://localhost/gilles/apiv3/geoportal-extensions/lib/ol3/ol-debug.js:11922:5
	ol.events.bindListener_/boundListener http://localhost/gilles/apiv3/geoportal-extensions/lib/ol3/ol-debug.js:6671:12

@gcebelieu
Copy link
Member

Le dernier commit corrige les PBs signalés 👍

C'est OK pour cette première partie (affichage dans des inputs). Il reste juste cette remarque non bloquante :

Il faudrait aussi que les contours des inputs ne soient pas visibles (comme avant)

@gcebelieu
Copy link
Member

gcebelieu commented Jun 22, 2017

ça marche plutôt bien 👍

3 remarques cependant :

  1. Il faudrait que l'utilisateur puisse voir qu'on peut passer en mode édition : en rajoutant des infos qui s'affichent au survol des input ("Cliquer pour saisir des coordonnées"). On pourrait aussi rajouter le bouton de centrage dès le début quand on est en mode affichage qui permettrait d'activer le mode édition.

  2. lorsqu'on est en mode édition et que l'on change les systèmes de coordonnées (par exemple passage de mercator à géographique), les champs de saisie ne se mettent pas à jour et on se retrouve à saisir des lat/long dans des champs X/Y

  3. Validation de la saisie des coordonnées :

Lorsqu'on saisit des coordonnées alors qu'il y a une BBOX de restriction, j'ai l'erreur suivante dans la console :

10:53:43,184 TypeError: extent.getTopLeft is not a function 1 MousePosition.js:1393:29
	MousePosition.prototype.locateCoordinates http://localhost/gilles/apiv3/geoportal-extensions/src/Ol3/Controls/MousePosition.js:1393:29
	MousePosition.prototype.locate http://localhost/gilles/apiv3/geoportal-extensions/src/Ol3/Controls/MousePosition.js:1417:13
	_createMousePositionPanelEditToolsElement/< http://localhost/gilles/apiv3/geoportal-extensions/src/Common/Controls/MousePositionDOM.js:437:17

lowzonenose and others added 2 commits June 23, 2017 10:51
CSS Commune entre ol et leaflet...
@gcebelieu
Copy link
Member

NB : sur la dernière version, il y a une inversion de la saisie latitude <-> longitude lorsqu'on est en dégrés décimaux (en sexagésimaux, c'est OK).

@gcebelieu
Copy link
Member

Remarques sur le paramétrage du marker :

  1. dans la doc : la propriété permettant de passer l'url du marker est documentée comme "src" alors que c'est "url" qui est utilisée => il faut modifier la doc pour indiquer la bonne propriété.
  2. offset : il faudrait que les valeurs par défaut de l'offset permettent de positionner correctement le marker par défaut par rapport à la position. Pour cela, les valeurs à appliquer sont : [-25.5, -38].
    Pour documenter cette option offset, il faudrait mettre le texte suivant :

Offsets in pixels used when positioning the marker towards targeted point. The first element in the array is the horizontal offset. A positive value shifts the marker right. The second element in the array is the vertical offset. A positive value shifts the marker down. [0,0] value positions the top-left corner of the marker image to the targeted point. Default is offset associated to default marker image.

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

Successfully merging this pull request may close these issues.

3 participants