hauke96 / simple-task-manager

A simple tasking manager made for OpenStreetMap.

Home Page:https://stm.hauke-stieler.de

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Feature request: Support custom JOSM commands per task

DavidKarlas opened this issue · comments

What I would like to do as part of import project is to call JOSM GET /import?url=https://MyAwesomeDataToBeImported.com/task25.osm.

The way this feature should probably be implemented is to not make any UI changes to keep it simple, but only when importing GeoJson look for specific property on feature named "josm_commands"(to allow multiple layers imports) or something like that and call that when JOSM editor is used by user.

Thanks for the feature request, however I don't quite get it. As far as I understand, you described the following scenario:

  1. You create a project locally with your favorite GIS software (JOSM, QGIS, whatever). You add the property josm_commands=foobar to your polygons.
  2. You import the polygons into STM
  3. You open a task in JOSM
  4. Because of the josm_commands=foobar property on each task, STM now calls JOSM via GET /import?url=... instead of the currently used GET /load_data?data=...

Did I understood that correctly so far?

If I understood the above correctly, then my question is: Why do you want to use the /import API of JOSM instead of the /load_data one? Whenever I open a task in JOSM, a new layer will be created, that's why I don't see any difference here.

First of all, thank you for awesome project... I never worked with Go or Typescript, so don't laugh at my changes 😄
I set up my own instance of STM at https://osm.karlas.si/

I hacked it so on signup/login I add new user to project that I host there see HACK, when I thought a bit more about it, it might make sense to add bool IsPublic column to projects table and when new user is logged in add it to all projects with IsPublic=true, and tada, #49 is fixed :)

Then I added "fix" for #139 where I propagate and respect maxProcessPoints.

And last thing I made Feature as imported into project also stay same, so no more new Feature(feature.getGeometry()). Which allowed for josmCommands to be accessible at "Open in JOSM" time.

Here is example of how my projectImport.json looks like, this is generated by my tool:
https://gist.github.com/DavidKarlas/771de05326522e96c07fb138a8a15095

Reason I want to load my custom layers is, that as I said this is import project, so one of layers is meant to be merged into OSM Data layer, any issues that happen with merged fixed and then uploaded, hence this feature request.

Thanks for elaborating this, I think I know what this is about. However I don't have the feeling that this feature is something for STM as it's

  • very implicit or this feature needs larger UI adjustments so that the users can define the commands when creating a project within STM
  • quite technical (a lot of OSM users barely know what GeoJson is for example)
  • probably only applies to very few users

So sorry, but for now this feature doesn't fit into STM.

Apart from the feature request, I have to say something regarding the public projects: There's a reason why it hasn't been implemented yet and I e.g. talked with Frederik Ramm and some others about this .
The HOT tasking manager has public projects and the local community somethines struggles with the changes made by HOT users. For example: Someone works on a task on Uganda with the suggested Bing imagery but that imagery is quite blurry and old. Local mappers have to do a lot of work to fix your mistakes due to the bad imagery this person used. Also a lot of people are not accurately working on the tasks, meaning the resulting data quality is sometimes quite bad or wrong data is added. As those people are not part of the project, because it's public, they don't really care about the project, data quality etc.
There's no good solution to prevent this kind of harmful behavour of many mappers (even if they act in good faith). This is why I haven't implemented this feature.