Coder Social home page Coder Social logo

pnecrins / geosites Goto Github PK

View Code? Open in Web Editor NEW
6.0 7.0 3.0 211.16 MB

Application WEB permettant de consulter l'inventaire du patrimoine géologique

CSS 9.89% PHP 8.34% JavaScript 40.67% HTML 41.09%
postgresql postgis leaflet national-parks bluehats

geosites's Introduction

GeoSites

Application WEB permettant de consulter l'inventaire du patrimoine géologique.

Développée par le Parc national des Ecrins pour mettre à disposition du grand public les sites géologiques remarquables de son territoire : http://geologie.ecrins-parcnational.fr/.

GeoSites permet de mettre en ligne une application WEB grand public pour consulter l'inventaire du patrimoine géologique d'un territoire. Cet inventaire est coordonné au niveau national par la CPPG (Commission permanente du patrimoine géologique) et validé scientifiquement par le MNHN (Muséum national d'Histoire naturelle) et le BRGM (Bureau de Recherches Géologiques et Minières). https://inpn.mnhn.fr/programme/patrimoine-geologique/presentation http://www.brgm.fr/projet/patrimoine-geologique-outil-saisie-inventaire-i-geotope

Initialement saisi dans la base de données GEOTOPE mis en place avec Microsoft Access par le BRGM, le Parc national des Ecrins a souhaité migrer ces données dans une BDD PostgreSQL / PostGIS et développer une application WEB grand public pour consulter ces données.

Cette application WEB peut aussi être utilisée pour mettre en ligne d'autres types de données localisées. Voir rubrique Développement de la documentation.

Présentation au Forum TIC 2016 : http://forum-tic.espaces-naturels.fr/sites/default/files/fichiers/presentations/5_geosites_cmonchicourt.pdf

Technologies

  • Langages : PHP, HTML, JS, CSS
  • BDD : PostgreSQL, PostGIS
  • Serveur : Debian ou Ubuntu
  • Framework JS : AngularJS
  • Framework CSS : Bootstrap
  • Framework carto : LeafLet
  • Fonds carto : Geoportail, OpenStreetMap, Google Maps, WMS

Fonctionnalités

  • Liste des sites géologiques (sites publics uniquement)
  • Carte des objets navigable avec fonds IGN, Openstreetmap et affichage de la carte géologique (WMS BRGM)
  • Fiche détaillée de chaque objet (texte, photos, PDF)
  • Recherche libre + filtre
  • Recentrage sur une commune
  • Filtre de la liste des résultats en fonction de la zone de la carte affichée
  • Responsive design pour s'adapter aux différentes tailles d'écrans (dont les mobiles)

Installation

Consulter la documentation : https://github.com/PnEcrins/GeoSites/blob/master/docs/installation.rst

License

  • Application développée par Thibault Romanin et Gil Deluermoz (Parc national des Ecrins)
  • OpenSource - BSD
  • Copyright (c) 2016 - Parc National des Écrins

image

geosites's People

Contributors

camillemonchicourt avatar gildeluermoz avatar romthi38 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

geosites's Issues

Revoir la conf et la doc

Le fichier dbconnect.php.sample n'est plus utile.
Pas mal de paramètres sont dans /data/htmlContent.json. Les mettre dans un dossier de config ou au moins créer une version sample, faire le gitignore et le mentionner dans la doc.

Liaison carte et liste

A faire

Lorsque l'on clique sur un Marker de la carte, la vue dans la liste de la sidebar se positionne sur le site correspondant.

Piste à suivre : $anchorScroll

AngularJS et SEO

Actuellement l'application ne dispose que d'une URL, du coup le contenu des fiches ne sera pas référencé par les moteurs de recherche.
Une alternative à cela semble être pushState - http://www.ocpsoft.org/java/seo-friendly-angularjs-with-html5-pushstate-rewrite-and-twelve-lines-of-code/

Il y a d'autres trucs à creuser pour être sur que les moteurs de recherche arrivent bien à accéder au contenu des pages, pas visible directement avec AngularJS - https://www.searchenginejournal.com/warning-youre-killing-seo-efforts-using-angular-js/142031/

http://www.angularonrails.com/get-html5-pushstate-working-angular-rails/

Affichage carte en masquant la sidebar

Lorsque l'on masque la sidebar avec la box en bas à gauche, une bande grise apparaît sur la partie droite de la carte.

Il faut utiliser invalidateSize() pour mettre à jour l'affichage.

Griser les sites absents de la carte

Lorsque l'on zoome sur la carte, les sites qui sont absents de la carte s'estompent dans la liste. Trouver un style css qui les estompent et l'événement leaflet à utiliser pour qu'à chaque action de zoom et dézoom une fonction qui recalcule l'affichage de la liste se déclanche.

LAYERS - ajouter la ou les couches wms geologiques du BRGM

Le BRGM propose un wms des cartes geologiques de France mais les premiers tests de chargement des tuiles n'aboutissent pas 👍 En ajoutant ceci au data/map.json les requetes vers le service renvoient : "Aborted". A creuser et corriger si le service est toujours disponible.
{
"name": "Carte géologique",
"type": "wms",
"url" : "http://geoservices.brgm.fr/geologie",
"active" : false,
"options": {"layers":"SCAN_F_GEOL250","transparent":"true","format":"image/png"}
}

REORGANSATION DU CODE - alléger l'index.php

Déporter le code spécifique dans des templates et ne mettre dans l'index que l'appel des fichiers js et css ainsi que l'appel des templates. Notion de layout (page de maquette).

CODE - renommer les modalControllers

renommer les controllers pour que les noms soient explicites et génériques
modalController.js --> modalNavbarController.js
modalDetailsController.js = ok

Régler problème de collapse en lien avec le scroll

Régler problème de collapse en lien avec le scroll.
LOrsque l'on clique sur un marqueur ça scroll bien sur le site dans la liste mais le site ne s'ouvre pas.
Voir code commenté qui si on l'active, ouvre la div mais elle ne se referme pas si on ouvre un autre site.

Sites sensibles

S'assurer que les sites sensibles sont exclus de la vue permetttant la création du geojson

Interaction LISTE--->CARTE

L'interaction carte --> liste est en place.
Mettre en l'interraction liste --> carte (affichage du popup sur la carte lors du choix d'un site dans la liste.)
cf #2

Créer fichier de config php

Créer un fichier de config qui contiendra les variables à modifier pour le fonctionnement générique de l'application :
La vue, la connexion à la BDD...

Création d'une modal pour les détails d'un site

A faire

Dès qu'on clique sur le bouton Afficher détails en dessous d'un site dans la liste de la sidebar, une modal s'ouvre et on a l'affichage dans une modal de détails plus précis concernant le site ainsi que pour certains sites un pdf consultable pour encore plus de précisions.

Piste à suivre : récupérer l'id grace à ng-click

ERGONOMIE - ouvrir les pdf dans l'application

Si on ouvre pls pdf et d'autant plus s'ils viennent de plusieurs sites, on ne sait plus ce qui correspond à quoi. Voir s'il est possible d'ouvrir les pdf sans quitter l'onglet de l'application.

Duplication des config

Les params de config de connexion à la base de données sont dans deux fichiers.
config.php et dbconnect.php
Ne conserver qu'un fichier pour la config :
mettre les variables de connexion dans le config.php
dans le dbconnect.php include le config.php et faire directement la connexion en supprimant les variables.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.