Giter Club home page Giter Club logo

ohsome-qgis-plugin's People

Contributors

joker234 avatar koebi avatar merydian avatar michaelsjp avatar tyrasd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

Forkers

merydian

ohsome-qgis-plugin's Issues

Add support for older qgis version.

The newest buf fixes for the temporal controler enable support for the newest qgis version but are not downward compatible.
Probably best to add a try except and apply the newest first and when it fails the solution for older qgis versions.

error when opening plugin window

I get the following exception when trying to open the dialog window: Python error : An error has occurred while executing Python code: See message log (Python Error) for more details.. This is the stack trace:

An error has occurred while executing Python code: 

AttributeError: 'NoneType' object has no attribute 'provider_combo' 
Traceback (most recent call last):
  File "/home/…/.local/share/QGIS/QGIS3/profiles/default/python/plugins/OhsomeQgis/gui/OhsomeQgisDialog.py", line 239, in _init_gui_control
    self.dlg.provider_combo.currentIndexChanged.disconnect(
AttributeError: 'NoneType' object has no attribute 'provider_combo'

Further information:

Add coordinates to 'Geometry shortened' message

When getting an error it sometimes seems like the error is called 'Geometry shortened', while it is actually something else. To clarify this, a couple of coordinates should be prepended to the message. This referes to the message Geometry shortened. For issue/debug copy from 'View'->'Panels'->'Log Messages'. in request_core.py.

Handle GeometryCollections

This request will return a GeometryCollection:

2022-02-13T22:22:42     INFO    Started task "OHSOME task"
2022-02-13T22:22:42     INFO    url: https://api.ohsome.org/v1/elementsFullHistory/geometry?
             Parameters: {
              "clipGeometry": "false",
              "properties": "tags,metadata",
              "showMetadata": "true",
              "filter": "id:relation/48418",
              "time": "2007-10-08T00:00:01,2022-02-07",
              "bcircles": "id0:8.626937, 49.399239,1000"
             }
2022-02-13T22:23:01     INFO    The request was successful:
             API URL: https://api.ohsome.org/v1
             Endpoint: elementsFullHistory/geometry
             Preferences: {
              "bcircles": "id0:8.626937, 49.399239,1000",
              "clipGeometry": "false",
              "filter": "id:relation/48418",
              "properties": "tags,metadata",
              "showMetadata": "true",
              "time": "2007-10-08T00:00:01,2022-02-07"
             }"

QGis cannot handle GeometryCollections: qgis/QGIS#32747. Therefore these collections need to be exploded before importing them to QGis like ogr2ogr -explodecollections out.geojson ohsome.geojson (though other output formats would be better suited of course).

The plugin seems to try something but instead saves an invalid .geojson where the geometry is completely missing.

Publish to Plugins repository

In the FOSS4G community the first question is often: "Is there a QGis-Plugin", and I've been asked this question already >1ce. So there seems to seems to be a user base and it would be a lot more convenient for them to just download it from the repository instead of the current installation process (apart from the increased visibility).

I therefore suggest releasing it to https://plugins.qgis.org/

Receive temporal extent

Automatically adjust the temporal extent in the GUI by getting the correct values from the specified api

Mouse cursor always on

To quote @Hagellach37

The mouse icon is always "on" after you used the centroid option, even if you close the plugin --> there seems to be no way to escape this

Processing algorithm ToDos

List of ToDos for the processing algorithms. Not sorted by priority at all.

  • Add algorithm description.
    They should link to the docs and mention any non-intuitive things (such as the period format, any checkbox-related behavior, …)
  • Pass point + radius to bcircle instead of buffering via QGIS.
    This could be a line in the description
  • Get default start and end parameters from metadata
    …if possible. Mention that they are in UTC
  • Rename "Format" -> "Output format"
  • Group stuff like "harmonize geometries" and "qgis temporal feature" together, since they are QGIS-related, not ohsome-API-related
  • Is the timeout internal or external? It should be external, i.e. the parameter should be passed to ohsome
  • Rework time period
    Currently, it's Years/Months/Days, it should be one text area called "Period" with a note that it's an ISO 8601 period and default P1M
  • Error handling
    Any errors returned by the API should be relayed to the user in a usable format, probably in the processing algorithm output panel (that is anyways opened once the algorithm starts).

UI Improvements

After reviewing the UI in the qgis-like-output branch, the following possible improvements came up:

  • Add header with general Info and Links (as before)
  • left-align OSM type (otherwise it feels a bit restless…)
  • Measure should be outside of simple, it's used for advanced as well
  • Years - Months - Days is a bit unclear - is this the Period for the Time interval below? If so, reorder and add title
  • What is keep geometry less in the advanced parameters
  • Rename harmon. geom to harmon geom in output since it only affects output
  • sort advanced parameters to the bottom
  • The option to add multiple point or polygon layers seems a bit unnecessary and can be dropped
  • Centroids get deleted once you click "+" again. These should stay, the API even supports multiple radii :)
  • any provider change issues a metadata request. This results in a lot of them. Can this be changed only if something in the provider settings changes?
  • if a layer contains a lot of points, the log gets rather long. could we add truncation to the geometry part in the log? Everything else is super helpful though!
  • if no output is given, a temporary layer should be produced

Popup time until disappear

Increase the time the popups stay open to give users the possibility to click e.g. resource links in the descriptions.

Fix the metadata bug.

the plugin has problems querying the metadata backend for the fixed time parameters.
at the moment it queries everytime the provider is changed or the plugin is started or closed.

somehow it hangs at the local api provider and fails if none is available.

a solution could be to only query the metadata parameters when the refresh button is pressed or the provider is changed!

Prevent config options from overflowing sceen

When opening the configuration and its submenus the UI dynamically grows. At one point the UI may grow beyond the sceen an the user has to close configurations to make the lower part accessible. This may be solved by introducing a scroll bar or by automatically closing all other options to prevent overflow.

Improve layer naming

Layers are currently named 'ohsome_MM-DD-YY:hh-mm-ss enpoint_type' . ISO time format would be a better choice, currently the meaning of these numbers is a bit of a riddle.

Logo

Find a nice and suitable logo.

At the moment the generic QGIS development icon is used, which isn't pretty exciting.

Find the logo here: Current Logo

flake8

Apply flake8 best practices.

Go-Live Strategy

Currently, the UI is a bit too convoluted to be easily usable, and there is no processing algorithm provided.
The road map would be as followed:

  • Create processing algorithm from current UI, supporting (all) the parameters (AUG)
  • thin the UI based on ohsome dashboard (SEP)
  • evaluate whether thinned UI is useful for QGIS users
  • test
  • adapt metadata and go live (OKT)

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.