Choisir un point
Une position saisie des deux côtés : deux champs masqués et un marqueur qu'on glisse, qui écrivent la même valeur.
Deux entrées, une valeur
Tapez dans un champ ou glissez le marqueur : les deux écrivent le même point, et chacun suit l'autre. Le champ ne lâche ce qu'il tient qu'en perdant le focus — « 48.8 » n'est pas encore une latitude.
48.852968, 2.349902
La valeur enregistrée n'est pas arrondie : glissez le marqueur et regardez les décimales du champ contre celles de la ligne ci-dessus. L'affichage arrondit à six décimales — onze centimètres — mais ce qui est stocké garde tout, sinon le point avancerait un peu à chaque aller-retour.
Chercher, puis corriger
Le geste métier complet : on tape une adresse, on choisit une suggestion, le point se place — puis on glisse le marqueur parce que le géocodeur est tombé au milieu de la rue. Le géocodeur est injecté : ici la Base Adresse Nationale, gratuite et sans clé.
Le champ de recherche seul
« InputAddressSearch » vit chez les inputs et n'apporte aucune dépendance carte. C'est un combobox : flèches pour parcourir, Entrée pour choisir, Échap pour fermer, et le focus ne quitte jamais le champ.
Un point à moitié rempli ne dessine rien
Videz un des deux champs : le marqueur disparaît et la carte reste où elle est. Un point à « 48.85 , 0 » est un vrai endroit au large du Ghana, et l'afficher serait une invention.
La carte seule
« MapPicker » sans les champs : une fiche lieu où l'on corrige la position à la souris n'a pas besoin de saisie.
glissez le marqueur pour suivre la position en continu
Le champ seul
« InputCoordinate » vit dans components/inputs et n'apporte aucune dépendance : un formulaire qui n'affiche pas de carte peut s'en servir. Les bornes viennent de l'axe — au-delà de ±90 une latitude n'existe pas.
Essayez 120 : la valeur est ramenée à 90 en quittant le champ
Les séparateurs de milliers sont interdits, le signe est permis