Hey everyone. As some of you know, Every Door is the most efficient mobile editor when you need to map a lot of shops or addresses or benches and street lamps. As fewer of you know, last year I’ve got a grant to make the editor extensible. In the most exciting way: by having plugins like JOSM (and no other OSM editor) does.
In the past two weeks I’ve confirmed that it is indeed possible. And now I am starting planning the API, by looking at potential use cases and also how JOSM does it.
I did have some requests to make custom builds or improvements to Every Door, and I have some ideas on what might be useful. But also I’d like your ideas. There are obvious things, like custom presets and layers, MapRoulette and Overture Maps integration, pluigging in custom data processing and servers.
But as a mapper, what would you like to see that won’t benefit everybody, but maybe you and some of your friends? To adhere to some local weirdness in tags or city planning, or to connect to some geodata-related project? Or maybe you’d change the UI somehow, even if it makes the editor worse for other people?
To ignite your thoughts, have a look at this github ticket, where I have collected some use cases and ideas.
You’ve been able to script Vespucci with JS since ages, but that aside I suspect you are seriously underestimating the issues this will cause with the App store/Play store. Which is the reason I’ve never pushed this more (outside of the use in presets for example to automate adding lifecycle tags), and the likely reason all Android plugin frameworks have been dead for many years.
Wow, that’s nice to know! It is well hidden on the website, so even I had no idea.
Regarding the stores, I know this will cause trouble. The last section in the Flutter plugins document mentions that. I have Plan B, but I prefer to worry when I encounter a problem, not before.
I’m glad to hear that EveryDoor is continuing to be developed
I’d love a “Take Image” plugin!
When selecting a feature to edit, I often wish there was an option to take a picture and have it automatically uploaded to a street-level imagery service (Panoramax/Kartaview/Mapillary/Mapilio/etc…) and linked to the object.
I’ve also frequently wished that I could edit the key directly in the tag editor page - usually when updating a recently closed business. (I have to copy the name=* value, create a new tag, add the old_name key and paste the value, then delete the name=* tag)
i like the idea of a an ‘add an image’ plugin hit would prefer it to use wikimedia commons. I fact a plugin that loooked for wikipedia articles that have locations but aren’t already liked to OSM objects would be cool.
I can here to suggest image uploads too - preferably using Panoramax which MapComplete already supports. Panoramax is FOSS and federated, so it ticks lots of boxes.
Not sure if this requires or would best be done with a plugin, but I wouldn’t mind a bit more control over changes and changeset upload: previewing bbox of changes and nodes/ways changed, putting the nodes/ways changed on a map (and allowing undoing from that map, in addition to from the list in Pending Uploads), and writing a custom changeset comment
Ooh interesting! It seems other have already expressed the same concerns as I have over app stores accepting it. As long as you know that’s probably a point of contention and designing with that in mind…
I’m not sure if this is a “plugin” or not, but I frequently want to create my own presets. For some reason, many Korean chains don’t have presets yet, and that slows down my mapping (as I’m often not solo and am mapping lazily as I walk through the city).
I would also find it useful to be able to “script” certain modifications that I observe as patterns. For example, it is currently a rather convoluted dive though the form and scrolling right (highly unnatural) to update payment methods. Specifically I’m currently tagging a lot of places in Korea that accept Apple Pay. This is far from universal but it’s becoming fairly common, so I want to edit these places quickly without changing the preset payment methods for the region.
A similar example would be upgrading tags on public toilets. In parks and other public spaces, toilets are often tagged here, but minimally. So if I could script a way to say “this is a public free toilet” (access and fee tags), that’d be a nice time saver.
Would it be worth something that replicates Keypad Mapper?
Shows a large num pad. You tap in a number, and hit left/right/forward to place a house number node a set distance from where you’re standing.
Every Door is slower as you have to keep aligning the location marker to where you want.
Maybe stating the obvious, but I would also like All The Places and Foursquare Places integration.
You could see points on the map which couldn’t be matched with an OSM object. If it exists in the real world, you could turn it into a new object with tags prefilled and move it into the precise location.
There would also need to be a feedback mechanism. Points which don’t exist in reality should no longer be shown to other users.
Maybe a plugin to review a places on Mangrove Review or LibReview or so.
I am hoping one day one will emerge as widely being used in implemented in the fediverse. But at I don’t know which service is most active developed or used.
“Take an image” for uploading is a good feature. But you can add/modify colour tag according to the picture taken. Just calculate the average hex value of the building’s image and that’s all.
On iOS you can fairly trivially run an image through the OS’s text recognition API. So if someone snaps a picture of a Starbucks (canonical geo example), you can potentially prefill the name and other tags from there. I presume you can do that in Android too, though how you implement it in Flutter,
Roman has already suggested I make an API call for taking a photo, so that plugins could do something with a picture: submit to some third-party service (like ChatGPT or Mapillary), or just sample a colour for a tag value.
Also, this would work only for images which contain enough info for the AI to retrieve from. So, even if the AI would properly detect all the stuff, it wouldn’t be used this much as there aren’t many places which would contain in a single space all the mappable info. It would still help with the tagging, but not much imo.
Image recognition via AI is a whole step beyond but what I was suggesting was simply character recognition - i.e. recognising the word “Starbucks”. iOS does it natively (on-device) and it looks like Android can do so if you download some library or other.
When I walk around I often map only very-very limited set of objects in EveryDoor. If there is something complicated, it probably implies editing existing nodes, redrawing ways or areas - something that ED does not support anyway, combining multiple changes in one patch - so I go to Vespucci for “big” changes.
But what I would like to see is easy way to add limited set of objects. Think of scenario like this:
I’m walking around the park where none of the benches and trash cans are mapped. Those are the only two objects I’ll be adding in the next ~20 minutes.
Today I need at least 4 clicks for bench: “Plus” → “Reconfirm location, Check” (just useless, I already selected location on the previous step) → click on “bench” (in the best case, sometimes I don’t understand how is the list being made, it’s for sure not “last used objects”. So often it’s actually typing b-e…) → “Save” (I don’t want to bother with details at this step, maybe copy-paste or saving details would help, but for sure I’m not going to click on “Backrest-yes” on every single bench I’m adding now. Will be a good exercise for SC users later on.). For trash can I probably still have to click on “Waste: trash” every time, so it’s five.
What I would like to see instead is 2 clicks: Plus → (some nice view which doesn’t have a list of 20 options, but like 2 columns and 2-3 rows with big square items “Bench”, “Trash Can”, “Light pole”, “Toilet”, for example).
The content of this view should be of course customize-able, today I’m adding benches and trash cans, tomorrow I’m adding artworks (street arts) around. But the point is that during this mapping “session” I’m only focused on 1-2 types of objects and I’d like to add them very quickly.
One other similar example I had recently is mapping mile markers on the road. I was driving along the long empty road which had very visible mile markers/signs on it. And I really missed simple way to map those with one click, because I’m driving and still prefer to look at the road sometimes :D. Here I wish similar scenario - click “Plus” (this should take current location) → click one big button “Mile Marker” → done.
And another example when I was mapping port of Abu Dhabi last week - it had ~20 food trucks and small cafes where none of them were mapped. Same, I’d like to be able to quickly add “Food truck” (amenity=fast_food, whatever) or “Cafe” or “Restaurant”.
I’m not sure whether this fits into what you see as “plugin”, but I’d really like to have something like that, see my brutal mockup:
Yeah, a quick input mode would be much appreciated. Even better if mixed with the KeypadMapper-like functionality that @LivingWithDragons proposed above.
Basically, I’d like to be able to go along a street and, with a single tap (two at most) add trees, street lamps, fire hydrants, trash cans, house numbers, etc., left or right of the current way. That’s similar to what OSMTracker supposedly does, but I was never able to figure out how to make it work.
This would pair well with @Jarek’s suggestion of an upload preview step, where e.g. the position of the added elements can be refined prior to uploading the changes.