PnX-SI / GeoNature-atlas

Application WEB permettant de générer des fiches espèces publiques à partir d'observations faune/flore
GNU General Public License v3.0
44 stars 46 forks source link

Ajout de nouvelles cartes / Problème apport des données de la BDD #442

Open eloisemt opened 1 year ago

eloisemt commented 1 year ago

Bonjour,

Trois associations naturalistes des Hauts-de-France (Picardie Nature, le GON et la CMNF) sont en train de mettre en place l'Atlas des mammifères des Hauts-de-France 2010-2022 et utilise l'outil GeoNature-atlas pour cela.

La mise en place de l'application a commencée dans le cadre de mon stage de Licence Pro SIG en avril 2022, j'ai donc des bases dans plusieurs langages informatiques. Jusqu'à maintenant je n'ai eu aucun soucis pour effectuer les changements souhaités. Je tiens à préciser que ce sera un atlas avec des données "fixes" puisque qu'on travaille sur un intervalle de temps, les données n'ont donc pas besoins d'être actualisées.

Sur l'interface j'ai ajouté trois onglets :

Chacun de ces onglets sera constitué de la même manière c'est à dire avec la liste des espèces associées au groupe (qui redirige ensuite vers la fiche espèce) et une carte de répartition dynamique avec le nombre d'espèces (du groupe associé) par maille. Pour la liste, pas de problèmes.

Là où ça se corse c'est pour la carte de répartition. En effet, j'ai réussi à faire afficher une carte Leaflet vierge puis avec les limites du territoire mais je n'arrive pas à y faire afficher des données de la BDD. image

Pour créer ces onglets j'ai créé trois nouveaux templates (le contenu des onglets n'est pas vraiment générique puisque pour l'ajout des listes d'espèces j'ai fait ça directement en HTML). J'ai donc créé une nouvelle route dans le fichier atlaRoutes.py pour chacun des templates (j'utilise l'exemple de l'onglet dédié aux chiroptères : si la solution est trouvée pour un onglet alors elle est trouvée pour les deux autres !) :

@main.route("/chiro", methods=["GET", "POST"])
def chiro():
    session = utils.loadSession()
    connection = utils.engine.connect()

    session.close()
    connection.close()
    return render_template("templates/groupChiro/_main.html")

Je n'arrive donc pas à afficher les données de ma BDD comme les cartes sur les fiches espèces le font.
Pour faire afficher la carte Leaflet j'ai ajouté à mon fichier .html le block additionalFooterAssets et j'ai copié la partie du fichier speciesSheet/map.html qui permet d'appeler la map.

Comment puis-je faire pour aller chercher les données dans ma base de données ? J'ai fait plusieurs essais pendant plusieurs jours mais je n'y arrive pour le moment pas. Globalement voilà ce que j'ai testé :

Je suis preneuse pour toute nouvelle idée et piste :)

Eloïse Moulin-Tanguy

TheoLechemia commented 1 year ago

Bonjour, Sur les fiches espèces existantes, les données sont chargées en AJAX comme ceci : https://github.com/PnX-SI/GeoNature-atlas/blob/master/atlas/static/mapPoint.js#L28 Vous pouvez faire un nouveau fichier javascript qui s'inspire de ça. cela implique ausside faire une autre route (une API) qui va renvoyer un geojson et non un template. Exemple de route qui renvoie les observations d'une espèce: https://github.com/PnX-SI/GeoNature-atlas/blob/master/atlas/atlasAPI.py#L85

Bon courage !

camillemonchicourt commented 1 year ago

Attention cependant, si vous modifiez le code de GeoNature-atlas de façon spécifique, vous devrez reporter vos modifications à chaque nouvelle version, sans garantie que cela fonctionne. Et cela ne bénéficiera pas à la communauté si cela n'est pas pensé et développé de manière globale et générique.