Oihana Next UI - 0.48.0

Application logo

Zones

Des aires de livraison lues depuis leurs « GeoShape », dessinées à la souris, et réécrites dans le même format.

Trois zones, trois formes

Un polygone tracé à la main, un rectangle, et un rayon autour d'un entrepôt. Les trois sont décrits en « GeoShape », le format de schema.org.

Secteur Nord-OuestSecteur Sud-EstRayon de Rungis — 4 km

Le cercle est le seul qui coûte quelque chose : « GeoShape.circle » est un centre et un rayon, et un point n'a pas d'intérieur. Il est approché par un polygone en coordonnées réelles — donc il grandit avec le zoom et survit à une rotation, là où un disque en pixels ne le ferait pas.

Dessiner et modifier

Les trois modes sont exactement les trois membres de « GeoShape » : polygone, rectangle, cercle. Terra Draw en propose une douzaine — la main levée, le secteur, le capteur — mais les offrir laisserait dessiner des formes que l'enregistrement perdrait.

Ce qui partirait au back — 3 zones

[
  {
    "@type": "GeoShape",
    "polygon": "48.895 2.28 48.900 2.36 48.870 2.40 48.845 2.35 48.855 2.29"
  },
  {
    "@type": "GeoShape",
    "box": "48.815 2.33 48.845 2.40"
  },
  {
    "@type": "GeoShape",
    "circle": "48.7489 2.3606 4000"
  }
]

Dessine un cercle et regarde ce qui sort : « circle » avec un centre et un rayon, pas un polygone de soixante-quatre points. Terra Draw note ce qui a dessiné chaque forme, donc l'intention survit à l'aller-retour. Le mode flèche reprend une forme existante — sommet par sommet, ou en entier.

L'aller et le retour

« toGeoShape » écrit ce que « parseGeoShape » a lu. Sans lui, une zone pourrait être affichée mais jamais enregistrée — et l'inversion des axes se ferait dans un seul sens.

Ce que le back envoie

{
  "@type": "GeoShape",
  "polygon": "48.895 2.28 48.900 2.36 48.870 2.40 48.845 2.35 48.855 2.29"
}

Après un aller-retour

{
  "@type": "GeoShape",
  "polygon": "48.895 2.28 48.9 2.36 48.87 2.4 48.845 2.35 48.855 2.29 48.895 2.28"
}

Deux différences attendues, et aucune n'est une perte. Le premier point est répété à la fin, GeoJSON exigeant un anneau fermé là où schema.org le recommande seulement. Et les zéros de fin tombent — « 48.900 » revient « 48.9 » — parce qu'une fois la chaîne lue en nombre les deux sont le même nombre, et que rien ne dit combien de décimales réécrire. Les valeurs, elles, sont exactes : le bruit flottant est rogné à douze chiffres significatifs, donc jamais de « 2.3200000000000003 ».