[réflexion] centraliser les choix d'icones et SLD

Problèmes, bugs et difficultés rencontrés sur le site.
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

[réflexion] centraliser les choix d'icones et SLD

Message par sly »

== SLD ==

Aujourd'hui, la feuille de style qu'on utilise pour présenter nos points fournis en gml sur la carte est hautement basique et ne contient en gros que :
<sld:ElseFilter /> --> pour tout le reste
<sld:OnlineResource xlink:href="http://www.refuges.info/images/icones/${type}.png" /> --> affiche une icone qui nous a déjà été indiquée

En clair, coté code, on trifouille un "type" bidon qui ne correspond déjà plus à rien et qui en fait devrait s'appeler "icone". Notre GML n'est donc pas un transfert de donnée pur mais un truc déjà orienté "trifouille de l'affichage". Ce qui le rend impropre à une consommation externe autre que juste "pour les yeux" et notre carte ne peut que difficilement évoluer vers une solution plus fine ou on changerait l'icone quand il y a un moyen de chauffage, on afficherait l'altitude des sommets ou je ne sais quel pop-up fun avec des infos "éclairs"

En outre, les icones apparaissent aussi sur le menu de sélection OL (qui a été généré coté serveur) qui correspondent à un id dans la base et donc nous empêche pour l'instant d'avoir deux coches comme : "abri sommaire" et "cabane non gardée"

L'export kml, qui lui aussi fait usage de nos icones, dispose, pour une 3ème fois consécutive de la logique "quelle icone pour quel point"

Je me pose donc la question de la centralisation propre de "quelles icones = quels champs en base", un endroit pour dire :
(place=0 ou manque_mur=1) -> icone abri sommaire et nom court "abri sommaire"
gardé=non and (poêle = oui ou chemine=oui) and bois=oui -> icone cabane avec feu et rondins de bois et nom court "Cabane chauffée avec bois proche"
etc. vous avez compris

J'ai plusieurs pistes de recherches :
- Mettre ça dans le SLD écrit à la main et exporter un gml du style :

Code : Tout sélectionner

 <gml&#58;featureMember>
    <point_wri>
      <nom>Habert de la dame &#40; Cabane de l'Alpettaz &#41;</nom>
      <$champ_en_base>$valeur</$champ_en_base> --> Pour tous !
      <url>http&#58;//sly.refuges.info/point/295/cabane-non-gardee/Chartreuse/Habert-de-la-dame-Cabane-de-l-Alpettaz-/</url>
...
avantages :
-> dominique va être content car son boulot coté OL va devenir bien plus simple ;-)

inconvénients :
-> je dois me taper un parseur de sld pour générer le kml et le choix des icones (et éventuellement gpx et extension "sym") à afficher dans le menu de sélection. + A l'avenir pour l'utiliser dans le getcapabilities de l'éventuel WFS pour qu'il puisse donner un nom court et une icone (éventuelle) à la couche disponible

- Mettre ça dans un style "fait main" simplifié (ou carrément un truc CSS ou autre truc existant)
avantages :
-> l'écrire est plus simple, le lire aussi pour la partie kml/icone+nom à cocher

inconvénients :
-> Cette fois, je n'écris plus un parseur de SLD mais un écriveur de SLD qui part de notre truc simple et en génère un SLD tel qu'on aurait pû l'écrire à la main (templates toutefois toujours les bienvenus !)

Dans les deux solutions, on gagne évidement que notre gml à générer devient sémantique et non "orienté style" ça peut ainsi nous servir pour exporter notre base et que je sors cette horreur que j'ai faite dans la base.
Voilà, j'hésite, des avis ou autres propositions ?

ps: l'idée que j'ai en tête fait suite à ce débat : http://www.refuges.info/forum/viewtopic.php?t=5005
où je ne suis pas satisfait intégralement de la proposition de dominique mais par contre je valide toujours l'idée de changer les choses.

Notez que je ne parle ici que de "présentation" (en clair, icone et nom court) qui rejoins le débat sur les clefs à récupérer que des gens veulent voir sur la carte, et l'interminable débat qui ne peut toujours pas répondre à "c'est quoi un gite d'étape ou un refuge gardé" et "c'est quoi un abri sommaire et une cabane"

En substance, je maintiens mon idée de séparer la manière de stocker en base, et les icones que l'on choisi de représenter, bref, éviter le : "un type de point = une icone"

Pour la partie du débat cité concernant le souhait pour dominique d'avoir une interface de saisie banalisée, idée à laquelle j'adhère mais pour laquelle je ne suis pas d'accord avec sa proposition. Pourra faire l'objet de choix techniques, je pense, assez indépendants.
Avatar du membre
Dominique
Messages : 3705
Enregistré le : 08 avr. 2006, 21:58

Re: [réflexion] centraliser les choix d'icones et SLD

Message par Dominique »

sly a écrit :En clair, coté code, on trifouille un "type" bidon qui ne correspond déjà plus à rien et qui en fait devrait s'appeler "icone". Notre GML n'est donc pas un transfert de donnée pur mais un truc déjà orienté "trifouille de l'affichage". Ce qui le rend impropre à une consommation externe autre que juste "pour les yeux" et notre carte ne peut que difficilement évoluer vers une solution plus fine ou on changerait l'icone quand il y a un moyen de chauffage, on afficherait l'altitude des sommets ou je ne sais quel pop-up fun avec des infos "éclairs"
Pas d'accord votre honneur :
- Les fichiers de contenu (GML, KML, GPX, ...) doivent donner un "type" de point. Aux externes d'en faire quoi bon leur semble
- Aux fiches de style (SLD, partie style de KML, définition de pictos de divers logiciels, ...) de définir la façon de représenter les types (icone avec son chemin d’accès, point coloré, étiquette, infobulle, ...)

Pour faire simple (au moins au niveau SLD), on peut déclarer qu'un type doit avoir un nom normalisé pour éviter les pb d'URL : lettres non accentuées, espaces et autres caractères remplacés par des _ : par exemple : point_d_eau, refuge_garde. Un type s'affichant avec une icone de même nom.

Pour moi, le calcul du type de point en fonction des infos de la base doit être fait au niveau du générateur de fichiers de contenu (dans le M du modèle MVC).

Je me propose de prendre le codage d'un extracteur de PGIS => tous formats en archi MVC / objet :wink:
Question : est il nécessaire qu'il fasse partie du premier niveau de migration ?
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Re: [réflexion] centraliser les choix d'icones et SLD

Message par sly »

Dominique a écrit : Pas d'accord votre honneur :
- Les fichiers de contenu (GML, KML, GPX, ...) doivent donner un "type" de point. Aux externes d'en faire quoi bon leur semble
- Aux fiches de style (SLD, partie style de KML, définition de pictos de divers logiciels, ...) de définir la façon de représenter les types (icone avec son chemin d’accès, point coloré, étiquette, infobulle, ...)
Malgré toute l'énergie que tu as dépensé hier à me convaincre, je ne le suis hélas toujours pas. J'accorde toutefois le : on change rien, on garde ça pour plus tard, continuons pour l'instant avec type=icone ;-)
Je me propose de prendre le codage d'un extracteur de PGIS => tous formats en archi MVC / objet :wink:
Maman, j'ai peur ! ;-)
Question : est il nécessaire qu'il fasse partie du premier niveau de migration ?
Je suggère fortement que non, sinon c'est pour 2015 la nouvelle version de wri ;-)
Avatar du membre
Dominique
Messages : 3705
Enregistré le : 08 avr. 2006, 21:58

Re: [réflexion] centraliser les choix d'icones et SLD

Message par Dominique »

sly a écrit :
Je me propose de prendre le codage d'un extracteur de PGIS => tous formats en archi MVC / objet :wink:
Maman, j'ai peur ! ;-)
La peur n'efface pas le danger :wink:
Bon : voilà ce que ça donne (je n'ai fait que l'export des points, je m'attaque aux polygones
http://dom.refuges.info/dom/export-poi. ... &limite=10

Le code est dans dom.refuges.info/dom/...
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

J'ai regardé le code, grosso modo, tu refais la même chose chose que j'ai déjà fait est qui est dans la fonction infos_points( )

et en plus, c'est même quasi compatible car tu renvois le même format !
Seuls les paramètres d'appels sont différents (je passe un objet de conditions, tu passes un tableau de conditions)

Bon, aller, tu as choisi "liste_id_point_type" alors que j'ai choisi "type_point"
tu veux que je le renomme ?

Ce que je vois donc, c'est que tu va refaire ce qui existe, en l'enrobant dans un objet "points"

Bon, dis le franchement : t'aime pas mon code quoi ? ;-)
Avatar du membre
Dominique
Messages : 3705
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

sly a écrit :Bon, dis le franchement : t'aime pas mon code quoi ? ;-)
Ton code est très bien, c'est juste le modèle MVC
J'essayais de faire propre, avec des règles de programmations (il y a même des <p> dans le config.php ! ça revient au plat de nouilles)
Mais si tu n'y vois pas d'avantages, ok, je vais faire autre chose :wink:
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

Dominique a écrit : Ton code est très bien, c'est juste le modèle MVC
J'essayais de faire propre, avec des règles de programmations (il y a même des <p> dans le config.php ! ça revient au plat de nouilles)
Le code de récupération des points n'est pas loin d'être compatible MVC, qu'il y est des <p> dans le config.php n'empêche pas qu'on s'y attelle pour les déplacer non ?
Le plat de nouille, je ne nie pas : dans tout ce qui est exportations, la gestion, et le formulaire de modif de point, là oui, y'a un sérieux coup de balais à mettre ! Mais c'est ingrat, alors forcément on a tous reporté...

Pour ce qui est des règles de programmation, je suis aussi bien d'accord pour en parler si on veut tenter de trouver un consensus
- des tab ou 2 espaces pour l'indentation ?
- des { sur la même colonne ou à gauche de la condition pré-bloc ?
- le passage de paramètre par objet ou par tableau ou par une méthode plus "objet" ?
- le rangement des controlleurs ?
- L'idée d'un seul point d'entrée à tout le site ?
- enrobage des fonctions existantes en objet ?

Mais mon avis est que repartir de 0, c'est pas le plus économe en temps et bug ajoutés. (Quoi que pour la gestion si) mais toucher aux fonctions d'opérations sur commentaires/polygones/points c'est justement celles que j'ai refaites en dernier !
Mais si tu n'y vois pas d'avantages, ok, je vais faire autre chose :wink:
Je ne veux pas t'enlever ton plaisir ! si tu le veux, vas-y ;-)
Mais peso, je n'aurais pas la motiv de lancer un nouveau round de bug report pour retrouver presque la même chose que ce qui marche.
Par contre, si tu veux enrober dans de l'objet en reprenant le code et avec démo à l’appuie comme quoi on y gagne, là ok.

Maintenant, si tu es "open mind" pour coder d'autre trucs, je peux te lancer sur : gestion de la carte par défaut dans les vignettes des points à partir de la base de donnée plutôt qu'une tableau statique, fusion de nav/massif, retirer les <p> du fichier de config, convertir l'export au modèle MVC, mettre les pages du mode d'emploi dans la base (je m'en veux d'avoir choisi ce système bancal de fichier texte, c'est trop merdique), les idées ne manquent pas !