Giter VIP home page Giter VIP logo

igo2's Introduction

Angular Style Guide join chat https://gitter.im/igo2/Lobby Known Vulnerabilities

Infrastructure géomatique ouverte 2.0 (IGO2) / Open GIS Infrastructure 2.0


Qu'est-ce qu'IGO?

IGO2 est une solution Web gratuite en géomatique basée sur Angular - Material, OpenLayers et IGO2lib. IGO2 permet de tirer profit d’une multitude de données géographiques grâce à une interface cartographique accessible par un navigateur Web sur un poste de travail et par un appareil mobile. IGO2 a été initié par l'administration publique du Québec (Canada) et issu d’un travail collaboratif basé sur la philosophie des logiciels libres et ouverts (« open source »). Les membres du public en géomatique et du Web qui soumettent des contributions conservent leurs droits d'auteur s'ils partagent leur code source selon la LICENCE LiLiQ-R de type LGPL.


What is IGO?

IGO2 (for Open GIS Infrastructure - version 2.0) is a free open source Web Geospatial solution developed at first in Quebec, Canada based on Angular - Material, OpenLayers and IGO2lib. IGO2 is having multiple features, such as Web GIS viewer adapted to Desktop and Mobile and many more available at https://igo2.readthedocs.io/fr/latest/english.html. Since this project is open source, anyone can contribute as long as they share their work on the same open source LICENCE LGPL-Style. All contributors in IGO keep their property rights.



Table des matières (Français)



Table of content (English)


Téléchargement

Installation (pour déploiement serveur)

  1. Télécharger la version désirée.
  2. Décompresser le fichier télécharger
  3. Déploier l'application sur un serveur Web (NGinx, Apache HTTPD, IIS ...)
  4. Servir le fichier index.html
  5. Personnaliser le contenu cartogtaphique (contexts.json et _default.json ou ...)

Installation et démarrage (pour développeurs)

Requis:

IGO2 version Node version
>= 16.x >= 18.10.0
> 1.15.x >= 16.19.0
> 1.5.x >= 12, <= 16
< 1.5.x >= 8, <= 11
0.x.x >= 6, <= 10
$ git clone --depth 1 https://github.com/infra-geo-ouverte/igo2.git
$ cd igo2

# Installer les dépendances
$ npm install

# Surveiller les fichiers et lancer une instance pour le développement
# Il est possible que vos changements de librairies ne soient pas appliqués.
# Webpack (suite au npm start) ne surveille plus les changement de node_modules. Il observe seulement la version des dépendances. De ce fait, les
# changements de code ne sont pas recompilées.
# Pour corriger ceci, désactiver la cache avec la variable d'environnement NG_BUILD_CACHE = "false"
$ npm start
# Ouvrir un navigateur http://localhost:4201/

# Build prod
$ npm run build.prod
$ npm run serve.prod
# Ouvrir un navigateur http://localhost:4201/

# Générer l'api de documentation
$ npm run doc
# Ouvrir un navigateur http://localhost:4220/

Si vous voulez développer en même temps ce projet ainsi que la librairie associée, référez vous à la procédure suivante:
https://github.com/infra-geo-ouverte/igo2-lib#for-developers

Tests

$ npm test

# Tests après chaque changement
$ npm run test.watch

# code coverage (istanbul)
$ npm run coverage

# e2e (end-to-end intégration)
$ npm start
$ npm run e2e

Contribuer

Nous sommes bien heureux que vous pensiez contribuer à IGO! Avant de le faire, nous vous encourageons à lire le guide de contribution, la LICENCE et le WIKI. Si vous avez d'autres questions, n'hésitez pas à communiquer avec nous à l'adresse suivante info(a)igouverte.org ou par Gitter.



Download

Installation (for server deployment)

  1. Download the desired version.
  2. Unzip the download file
  3. Deploy the application on a web server (NGinx, Apache HTTPD, IIS...)
  4. Serve the index.html file
  5. Customize map content (contexts.json and _default.json)

Installation (for developpers)

Require:

IGO2 version Node version
>= 16.x >= 18.10.0
> 1.15.x >= 16.19.0
> 1.5.x >= 12, <= 16
< 1.5.x >= 8, <= 11
0.x.x >= 6, <= 10
$ git clone https://github.com/infra-geo-ouverte/igo2.git
$ cd igo2

# Install dépendencies
$ npm install

# Check files and launch dev instance
# Your library changes may not be applied.
# Webpack (following npm start) no longer monitors node_modules changes. It only observes the version of the dependencies. Therefore, the
# code changes are not recompiled.
# To fix this, disable the cache with the environment variable NG_BUILD_CACHE = "false"
$ npm start
# Open your browser at http://localhost:4201/

# Build prod
$ npm run build.prod
$ npm run serve.prod
# Open your browser at http://localhost:4201/

# Doc API generation
$ npm run doc
# Open your browser at http://localhost:4220/

If you want to develop this project and the associated library at the same time, refer to the following procedure:
https://github.com/infra-geo-ouverte/igo2-lib#for-developers

Tests-en

$ npm test

# Check by karma
# Tests after each change
$ npm run test.watch

# code coverage (istanbul)
$ npm run coverage

# e2e (end-to-end intégration)
$ npm start
$ npm run e2e

Contribution

Before contributing, please read the guidelines, the LICENCE and the WIKI. If you have any question and want to contribute, contact the main email of IGO info(a)igouverte.org or on Gitter

igo2's People

Contributors

alecarn avatar almat65 avatar aziz-access avatar cbourget avatar dependabot[bot] avatar drekss avatar frank79a avatar gignacnic avatar hugbe8 avatar lamm26 avatar lavoieo avatar marclonfo avatar matrottier avatar mbarbeau avatar mikesmichael avatar mneige avatar mspkarengeo avatar oliviersaintcyr avatar pelord avatar philippelafreniere18 avatar snyk-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

igo2's Issues

search bar behavior

  • At the moment, the menu opens up anytime a key is typed in the search bar. Not all keys should open the menu (i.e. arrows). Also, when erasing the last character with the backscape, the menu should not open.

  • A research is initiated as soon as a character is entered. Wait until 3 characters are entered before doing a research.

  • When selecting text in the search bar and erasing it, the search bar should get the focus. Right now it doesn't because the search list gives the focus to the previoulsy focused element, which, in this case was the selected text (now erased). This happens only when the sidenav is initially closed.

Outil + API de recherche sur couche et localisation

Outil de texte libre permettant de faire une recherche sur plusieurs sources à partir d'un API. Il permettra de chercher sur des couches WMS, ses contextes, ses métadonnées, le service de géolocalisation d'adresse, etc.

Configuration du navigateur par un JSON

Permettre la configuration pour chaque contexte et utilisateurs à partir d'un fichier JSON qui va supporter l'ajout de fond de carte, couche WMS, couche WFS, outil/service, déclencheur, style, type d'authentification, etc.

Search tool

Create a search tool that'll query a dummy search service, display the results and the selected result's details.

Tooltips

Add tooltips wherever needed usging materials tooltips. It would be nice of the i18n stuff was merged before doing that so they could be translated.

Ongoing request service and spinner

  • Create a service that'll track the number of ongoing requests.
  • Create a spinner component that'll display itself when the number of ongoing requests is 1 or more.

Note that we'll have to distinguish blocking request from non-blocking requests.

Blocking requests are things like a form submit that should prevent the user from doing other actions.

Unblocking requests are things like search query that should not prevent te user from doing other actions.

For now our current need is to handle non-blocking request. A different component will be needed for blocking requests later and might include a modal backdrop.

A spinner should appear only when a requests is running for more than a few seconds. We do not want a spinner for requests tht are nearly instantaneous.

Toolbar

Create a toolbar and make it raise an event when a tool is selected. The navigator page should store the selected tool in a redux store and observe it to display the proper tool component.

Tool history

Keep track of the tools selected and implement an actual "go back" function that'll select the previous tool.

Fonction de sauvegarder une vue cartographique par un URL et de la partager au besoin.

Fonction permettant de voir une vue cartographique (niveau de zoom, couche activée) par un URL et de le partager à un autre utilisateur. On pourrait amener le concept de vue cartographie privée, protégée et publique. Seul le créateur peut modifier ses contextes.

Un service API de sauvegarder de vue cartographique devra être développé.

Le concept de vue cartogrpahique pourrait être comme une go-collaboration en temps réel via un WebSocket.

Parent-child container

Create a parent/child component that behaves like this:

  • The parent element is set a given height
  • The child element uses the remaining height

Base layout

Do the basic layout whoch includes:

  • A left sidenav
  • A search bar
  • A menu button

Refer to the mockups for more info

Shared module

Create a shared module that'll contain eveything shared by multiple modules.

Smoother move/zoom behavior

We could use transitions effect when movin/zooming to a search result. Check what Google does for some inspirations.

Mainly, there seems to be 3 behaviours:

  • Slow pan to a location when it's close
  • Zoom from a location to include another location nearby (very close)
  • Go directly to a location without paning (current behavior) when it's to far away

Search result marker

Add a search result marker on the map and pan to it or zoom to it, depending of the result is focused or selected.

Messages service and component

Create a message service in which success and error messages will be registered. Also, create a component that'll nicely display them to the user (probably using material toasts).

Search bar focus

The search bar should gain focus whener the search results tool is opened.

Mockups

Create mockups for the core functionnalities of IGO2.

menu à gauche pouvant être expanded pour poste de travail

menu à gauche pouvant être expanded pour poste de travail (pour mieux voir les résultats de recherche quand les résultats sont trop long...) Ne pas appliquer cette possibilité pour le mobile.

Please tell us about your environment:

  • Igo Version:

  • Node:

support couche WMS / layer / getcapabilities

Support dans la config du JSON : couches WMS par le URL+layer ou le getcapabilities ("protocole": WMS, protocol:getcapabilities, title, scalemin, scalemax, wms_dataurl_href, wms_dataurl_format, active, visible, opacity).

Select a tool

Display in the main container the select tool's info (for now) as and a comtextual header containing the tool's title, a back button and an home button.

Param dans URL : pour déclencher une recherche de localisaton/couche et affichage de couche

Search result BBOX

If a search result has a bbox, use it to pan and zoom the map instead of using the actual geometry.

Dependencies

Integrate these dependencies:

  • angular material
  • angular flex-layout
  • proj4

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.