Giter VIP home page Giter VIP logo

aukigo's People

Contributors

anniinaiikkanen avatar joonalai avatar mvaaltola avatar sannajokela avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

aukigo's Issues

Spatial data format

Which spatial data format to use in the frontend?

GeoJSON

  • Simple
  • Vector format, attribute queries are possible
  • Possible performance impact if file sizes grow too large
  • Can be pre-generated, generated dynamically and/or cached (more on this in covid19-map-backend)
  • Limited CRS support
  • Styling #3

Raster tiles

  • PNG images, can be generated dynamically but should be cached
  • Easy to add support in frontend
  • Can use any existing WMTS or set up a new service
  • If self-serving, requires a tile rendering solution with map styling being the main issue
  • Cache needs relatively large amount of disk space

Vector tiles

  • Vector format, but limited attribute querying
  • Many different formats, another decision to be made which one to use
  • Practically needs a new WMTS and tile rendering solution, cache relatively small
  • Styling #3

Basic UI

Add a basic user interface with layer selection. Use material-ui for components

Add licenses

Add GPLv3 license to project and OpenStreetMap attribution to UI. You should use license from tilesets.

Add test framework

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.

Improve map popup 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.

Related to #23, #24

Show mobile version in fullscreen

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.

Web map library/framework

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:

OpenLayers

Pros:

  • Versatile
  • Comprehensive documentation

Cons:

Leaflet

Pros:

  • Easy to use
  • Many plugins to add features
  • React-Leaflet seems to be actively maintained (v3 using React hooks is at alpha stage)

Cons:

Enhance styling

Enhance styling and desing:

  • Header rounding and line-gradient
  • Shadow effects

Fix settings button

Settings button changes into wrong color when pressed (greyish). When pressing other buttons, settings button changes back to its rightfully coded color.

image

image

Supported coordinate reference systems

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.

Show only points on map

For simplicity only show features with point geometries on map. Lines and polygons should not be displayed.

Vector styling

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.

Fix info pop up size and position

Info pop up is too large (and in charge) when you click on a point. It also has some position issues (in some points it appears far).

image

Add search functionality

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.

Create popup for vectortile features

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.

Add layer selection functionality

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.

Add "back to original bounding box" feature

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.

Show opening hours

Feature style should be affected by opening hours so it's easy to distinct between open and closed/unknown locations.

Fix icons in pop ups

All layers have the same accommodation icon in their pop up. It should change when switching to a different layer.

aukigo_bugi_2

UI design and functionality

Design a responsive mobile-first user interface for the application. Some ideas discussed in first meeting:

  • basic: number of preconfigured "layers" by theme
  • basic: each layer has a set of features that are displayed on the map when the layer is active
  • basic: layers are toggled by the user from a toolbar, only one active layer at a time
  • basic: multiple background maps, only one per layer
  • search: search in features, toggle option to limit search by map extent
  • search: geocoding search?
  • search: show only a subset of features, e.g. "show only motels"
  • extra: "options" button, with a few setting toggles e.g. show scale bar
  • extra: "info" section in options-menu, with information about the app, licenses, etc.

Custom colour scheme, animations and other possible eye-candy added after first functional draft version.

Autopan not working correctly

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.

Add settings menu functionality

Clicking on the settings button should open a menu popup with options.

Possible content:

  • List of basemaps with toggle
  • Link to github repo
  • Gispo logo that links to gispo.fi
  • Big blue contact us CTA button

Fix map point responsiveness

Some map points doesn't activate through pressing. Map freezes on some parts. Especially if the pop up is open. Sometimes when point is clicked, size grows but pop up doesn't open.

image

image

Configure CI

Configure CI using Github Actions. Add at least job to run tests.

Update style

Implement changes made in css/style.css file to components

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.