Code Monkey home page Code Monkey logo

every_door's Introduction

Every Door

The best mobile editor for adding shops and amenities to OpenStreetMap.

Help test it for iOS and Android (F-Droid, Google Play, GitHub, Huawei AppGallery).

The roadmap is in a project.

Screenshots

Amenity mode Editing a library Micromapping mode

More screenshots

Presets and Translations

The editor uses presets from iD: they are managed in a dedicated repository and translated on Transifex.

To translate value options, first make a pull request to the iD tagging repo adding desired options, like here. Then, when the translation source on Transifex is updated, there will be strings to translate. Like here.

Brands are managed in the Name Suggestion Index.

Help translate the app at Weblate. I'm grateful to them for a libre hosting.

Design

I need help with design. That includes a new icon, the website, Flutter animations for everything, and general UX improvements. Please help.

Principles

  1. ED displays and edits only tagged nodes and polygons represented with their centerpoints. No roads.
  2. ED focuses on surveying: adding and detailing things that you can see around you. Not map maintenance.
  3. Fewer buttons and menus: heuristic is preferable to a setting, and every button benefits the surveyor.

How To Build

You will need the Flutter SDK installed. Alternatively, clone with submodules (git clone --recursive) and use vendor/flutter/bin/flutter. That is the preferred way for releases.

  1. Download taginfo-db.db and unpack it somewhere (it's ~9 GB).
  2. From the tools directory, run ./update.sh <path_to_taginfo_db>.
    • Alternatively, do curl https://textual.ru/presets.db -o assets/presets.db
  3. echo '{}' > lib/l10n/app_zh.arb (fixing Dart's localization issues).
  4. flutter pub get.
  5. flutter build.

Author and License

The editor was written by © 2022 Ilya Zverev and published under the ISC license.

every_door's People

Contributors

andibing avatar ann-who avatar atrate avatar bfontaine avatar bgo-eiu avatar binnette avatar comradekingu avatar damjang avatar deob83 avatar fjuro avatar franco999 avatar garaolaza avatar georgehoneywood avatar higa4 avatar kjonosm avatar laralem avatar lisapple avatar lliehu avatar matheusgomesms avatar mcliquid avatar milotype avatar nikolajfyhn avatar ricloy avatar rroset avatar soumendrak avatar strebski avatar supaplextw avatar urbalazs avatar weblate avatar zverik avatar

Stargazers

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

Watchers

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

every_door's Issues

Amenities are sometimes duplicated

«после первой отправки я нажал на зеленую галочку, и у меня продублировалась точка, совершенно непонятно как»

Не проходит OAuth авторизация

После нажатия кнопки "Авторизовать" на стороне OSM в приложении появляется ошибка:

OAuth Error
FormatException: Unexpected character (at character 1)

Возможно, конечно, временные глюки на стороне OSM и мне просто не повезло.

Improve account screen

«аккаунт osm - каждый раз при открытии подгружает количество changeset и почты, при этом на экране все некрасиво прыгает»

Save editor state on app unload

When app is unloaded in the background and then restored, unsaved editor changes should be also restored. It's called Restoration in Flutter.

Can be done in other ways though: e.g. by saving data to the database.

Support app unload on OAuth login

When the web view is heavy (e.g. Firefox for Android), app can be unloaded, and the auth flow gets broken. Support Restoration or whatever.

Look up duplicates when creating new amenity

При добавлении заведения — фоновый поиск по похожим заведениям в округе. Рисовать красный значок, если нашли.

[Proposal] Display Arrow and distance to POI

I do not know if this feature is wanted but I think it might help to display distance and direction of the POI left to the infos where the checkmark is. I really like the look of the implementation in osmAnd.

grafik

Might also help to get rid of the map if this is still the goal of this editor

(A bit) misleading message 'no amenities around..' in certain scenario

версия 1.1 андроид

подготовка:

  1. поставить апп с нуля
  2. прийти в место, где есть POI
  3. запустить приложение, скачать POI
  4. закрыть приложение

основной сценарий

  1. открыть приложение
    результат - в области POI выдается текст "no amenities around..", которое позже сменяется информацией по POI
    комментарий - такой текст в этом сценарии немного озадачивает - мы же знаем, что POI же есть вокруг, и что приложение о них уже знает.
    Ожидаемый результат - как-то уточнить отражение состояния. Варианты:
  • сообщение типа "у меня что-то есть в базе, вот щас поищу и покажу.. или нет"
  • просто спиннер

Add warning message that filters are applied

Before the nothing around you message is applied it should check if there are amenities around that were filtered. If so it should warn you that filters are still enabled and maybe display a disable button.

Might help to fix the problem for issue #12

Filter a lot of the information=* stuff

It seems like the information=* tag is somehow polluting the list of shops. When I go to my local mall I see some hiking guideposts (information=guidepost) and many information boards some of them should be moved to the micromapping or should be removed from the list.

The only important information values are:

  • information=office
  • information=visitor_centre

What do you think?

The same applies to leisure=picnic_table. I would also move this to the micromapping section.

Is the micromapping section implemented yet? I could not reach it for no :(

[Proposal] Filter by check_date

I want to be able to filter out amenities that I or others have already checked so only things that have not been checked in a while will be shown

Support OSM notes

Maybe as a dedicated type with special processing. Might also need to be displayed in the poi list. And there should be a comment support.

All in all, quite hard to implement and not sure if needed.

Feedback in the app

Probably an option in settings to write a few words and attach images and logs.

[Proposal] Add team mode

I really like the team mode from street complete since it works offline and makes working in a team much easier.

Easiest would be to just copy the concept. Essencially it just takes the OSM id modulo team size and checks if the result equals you team member index:

quest.stableId % teamSize == indexInTeam.toLong()

Full code can be found here:
https://github.com/streetcomplete/StreetComplete/blob/e34f3b5163d4c443c6436fddb531c1116c0529a7/app/src/main/java/de/westnordost/streetcomplete/data/visiblequests/TeamModeQuestFilter.kt

Edit: Could even be improved by hashing the OSM id before the modulo to compromise for potential id biases, but this is just an idea

[Feature Request] Display the date of the last modification of the object

To delete a POI, you need to make sure that it really does not exist. In a large building, this can be difficult. A hint in this may be the date of the last edit of the object.

It can be displayed in an extended list of tags in order to make decisions based on it last and not make unnecessary requests.

OAuth fails

grafik

OSM Loginpage was displayed in firefox, did not retreive any api key

Search amenities nearby

There should be a button or a search field to filter amenities with a name or type. Like in the telegram bot.

Dynamic default presets list

Instead of a fixed list, either:

  • Add an editor to customize it.
  • Use recently selected presets.
  • Use presets from around the user.

[Proposal] Expand limits for breaks, pls

There are only 2 break periods available to add. It is impossible to add more.

Sometimes it is like that:
Here I manually added breaks via raw tags editor. It shows correctly in the app though

List POI by columns instead of rows

Reading current list is hard: it is easier to browse the list column-wise. Maybe rotate the list? Account for scrolling: e.g. group by 3-4 rows. Like this:

1 4
2 5
3 6
7 9
8 10

[Feature Request] Zoom using the +/- volume button

Perhaps this function is not relevant now because of autoscaling, which locks the scale. But if this changes in the future, it was convenient to zoom the card with the volume buttons.

In Every Door, this will be especially relevant because:

  1. Due to the small size of the card, it is difficult to zoom
  2. It is impossible to change the zoom with your fingers without changing the current position. And this entails changing the order of the POI list, which is annoying.

One of the disadvantages of this function is that you will have to add a new setting

An example of the implementation can be found in https://github.com/Helium314/StreetComplete

Logs provider

Instead of print(), save all logs somewhere, so they are viewable through the app.

Карта перестает загружаться при приближении.

После определенного зума вместо карты отображается серое поле, карта не загружается. Как osm тайлы, так и спутниковые снимки.

Если на этом зуме просто нет тайлов, то хотелось бы просто интерполировать картинку, чтобы хоть что-то отображалось.

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.