gispocoding / aukigo Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU General Public License v3.0
License: GNU General Public License v3.0
Suitable test frameworks should be investigated. The framework should be compatible with selected map library.
Also support for CI (#5) should be taken into account.
Layer selector buttons don't have permanent inverted styling when clicked active. It could be done via radiobutton styling.
Use tags opening_hours
and opening_hours:covid19
to determine the opening hours of the features.
As mentioned in #60:
Issues remain with OL autopan not working correctly. Intended behaviour is to pan the map when a popup opens so it fits on screen. Currently the map is only panned after the second click on the feature and even that is not done reliably.
The position: absolute change on mobile displays in this PR probably also prevents autopanning from working, but it does not work even if not manually setting position.
Configure CI using Github Actions. Add at least job to run tests.
Feature style should be affected by opening hours so it's easy to distinct between open and closed/unknown locations.
Add support for multiple languages/translations with react-intl.
Display a popup when user clicks/taps on a vector feature on the map. The popup should contain some basic information about the feature, and an "additional information" tab that displays all of the attributes of the feature.
See if possible to register clicks/taps even if user misses the feature by a small margin to make clicking on narrow lines or small points easier.
Clicking on the settings button should open a menu popup with options.
Possible content:
Improve the content displayed in popups when user clicks on map. Only the most important information (name, website, and others based on selected layer) should be displayed by default and no tag names should be visible in the default view.
Missing information should be handled without displaying undefined
. All information (tag names and values) should still be accessible from a toggle.
If using vector tiles, GeoJSON, or another vector format, styles need to be created for rendering features. This can be done either in-client by defining styles in JS, or possibly using a style generation tool. More research needs to be done on this if deciding to go with vector formats.
Currently aukigo frontend is not shown in fullscreen, meaning the bottom bar gets hidden under the phone's bottom menu bar. This could be fixed by displaying the webpage fullscreen.
Design a responsive mobile-first user interface for the application. Some ideas discussed in first meeting:
Custom colour scheme, animations and other possible eye-candy added after first functional draft version.
Add GPLv3 license to project and OpenStreetMap attribution to UI. You should use license from tilesets.
Ghost points appear when no layer is selected.
Design settings menu content
Related to #37
Implement changes made in css/style.css file to components
For simplicity only show features with point geometries on map. Lines and polygons should not be displayed.
Show vectortiles fetched from the backend on the map. Prerequisite for #15
With selected technologies. Use Create React App and Material-UI and react-intl.
Enhance styling and desing:
Add a basic user interface with layer selection. Use material-ui for components
Add "X" symbol to info pop up in the up-right corner.
Add editorconfig for project.
There should be a feature (maybe associated with the logo?) that brings the user back to the original bounding box. This makes the software feel "safer" when you can always find your way back to the known place.
Add functionality to layer selection buttons. Selected layer should be displayed (and old layer hidden) when user clicks on a button. Possibly add tooltips to buttons that display the layer name.
Search currently displayed vectortile layer(s) for features when user types a query into the search field. Display search suggestions in a dropdown, and zoom to selection if user clicks on a suggestion. Automatically zoom to first suggestion if user types a query and hits enter.
Add some E2E tests using Cypress
A decision needs to be made on what coordinate reference system(s) to support in the frontend application. A typical choice would be EPSG:3857 i.e. web mercator, which most global tilesets are served in. EPSG:3067 data is common in Finland and some data may be only be provided in EPSG:3067. Most regional-level spatial data in Finland is in ETRS-GKn, not suitable for country-wide data.
If the frontend uses web mercator (the most common choice in web mapping), data in other CRS must be converted to EPSG:3857 in the backend before serving it to the frontend. More on this issue in the covid19-map-backend repository.
Which spatial data format to use in the frontend?
Using maputnik.io. Related to #35
Deciding which web mapping library/framework to use. As the frontend is built on the React web framework, possible React component compatibility also needs to be considered.
Main candidates are:
Pros:
Cons:
Pros:
Cons:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.