Giter Club home page Giter Club logo

streetmeasure's Introduction

StreetComplete

StreetComplete is an easy to use editor of OpenStreetMap data available for Android. It can be used without any OpenStreetMap-specific knowledge. It asks simple questions, with answers directly used to edit and improve OpenStreetMap data. The app is aimed at users who do not know anything about OSM tagging schemes but still want to contribute to OpenStreetMap.

StreetComplete automatically looks for nearby places where a survey is needed and shows them as quest markers on its map. Each of these quests can then be solved on site by answering a simple question. For example, tapping on a marker may show the question "What is the name of this road?", with a text field to answer it. More examples are shown in the screenshots below.

The user's answer is automatically processed and uploaded directly into the OSM database. Edits are done in meaningful changesets using the user's OSM account. Since the app is meant to be used on a survey, it can be used offline and is economic with data usage.

To make the app easy to use, quests are limited to those answerable by asking simple questions.

Screenshots

Download

Get it on Google PlayGet it on F-DroidDownload APK from GitHub

Quests

There are quite a few different quest types now and more will be added over time. You can see a community-managed list of all quests in the OSM wiki.

FAQ

You can find a list of frequently asked questions in the wiki.

Contributing

This is an active open-source project, so you can get involved in it easily! You can do so without any programming or OpenStreetMap knowledge! Just choose a task that you like.

Here are a few things you can do:

Also, if you like StreetComplete, spread the word! ❀️

License

This software is released under the terms of the GNU General Public License.

Sponsors

GitHub Sponsors Liberapay Patreon
Many users are currently supporting this app through GitHub sponsors, Liberapay and Patreon. If you like the app, you can join them ☺️ to support the continued development and maintenance of the app.

German Federal Ministry of Education and ResearchPrototype Fund
Within the frame of Prototype Fund round 15 (March 2024 to August 2024), the German Federal Ministry of Education and Research currently sponsors Tobias Zwick to work on StreetComplete for iOS.
Development on this app was also sponsored in round 8 (September 2020 to February 2021) of the Prototype fund, with focus on collecting more data points and on general improvements of this app.

JawgMaps
Since mid 2020, JawgMaps provides their vector map tiles service to StreetComplete for free, i.e. the background map displayed in the app.

Past Sponsors

nlnet
The NLnet foundation sponsored development on this app in three individual grants with funds from the European Commission:
Two grants given to Mateusz Konieczny in 2019 and 2021 enabled him to work on StreetComplete for about one year in total, with a focus on clearer UI and improvements on data collection. Furthermore, yet another grant enabled Tobias Zwick to work about five months in 2021/2022 on - most notably - the overlays functionality and measuring with AR.

OpenStreetMap foundation
In August 2020, the OpenStreetMap foundation funded the development of Map Maintenance with StreetComplete within the frame of the microgrants program.

streetmeasure's People

Contributors

westnordost 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

streetmeasure's Issues

Feature Request: Screenshot incl. GPS Coordinates

Hello,
I understand that the focus of StreetMeasure is be simple and stable to use, I am not sure wether feature requests are wanted. However, I want to give it a try.

I am using StreetMeasure in particular to measure widths of cycleway infrastructure. As cycleway infrastructure appended to highways (lane) is not a StreetComplete quest ( #5025), my workflow so far is:

  • measure the width with StreetMeasure
  • take screenshots (please see picture)
  • edit afterwards at home with ID Editor

Two features might be helpful for me (and others?):

  • Geotagged screenshots
  • built-in picture/screenshot mode thats would allow easier documentation of measurements

Screenshot_20240407-142221 (Klein)

Screenshot_20240407-142215 (Klein)

Migrate to API 34

Stm use API 33, and Google give 2 years to migrate to the latest API (Google removes app from Play Store if migration is not done). We have 1 years to do the migration.

Todo:

  • Migrate compileSdk and targetSdk to 34
  • Bump dependencies (do you want bump material library, this library continue to grow up and take a lot of space)
  • Enable OnBackInvokedCallback feature (only on manifest we don't use onBackPressed in activity)
  • Generate locales config (we can save few Kb)

Cc @westnordost

one-time crash

Thanks for working through making this a standalone app, in addition to solving the license nonsense it's actually a useful app outside of SC as well :).

Today when using it from within Streetcomplete I got the following crash. It crashed once out of measuring for 4 or so quests. Otherwise it worked fine.
I'm not sure if the following crash log is useful at all, but here it is:

--------- beginning of crash
02-12 14:34:39.648  6946  6946 E AndroidRuntime: FATAL EXCEPTION: main
02-12 14:34:39.648  6946  6946 E AndroidRuntime: Process: com.google.android.gms.ui, PID: 6946
02-12 14:34:39.648  6946  6946 E AndroidRuntime: android.app.RemoteServiceException$CannotDeliverBroadcastException: can't deliver broadcast
02-12 14:34:39.648  6946  6946 E AndroidRuntime: 	at android.app.ActivityThread.throwRemoteServiceException(ActivityThread.java:1979)
02-12 14:34:39.648  6946  6946 E AndroidRuntime: 	at android.app.ActivityThread.-$$Nest$mthrowRemoteServiceException(Unknown Source:0)
02-12 14:34:39.648  6946  6946 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2241)
02-12 14:34:39.648  6946  6946 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:106)
02-12 14:34:39.648  6946  6946 E AndroidRuntime: 	at android.os.Looper.loopOnce(Looper.java:201)
02-12 14:34:39.648  6946  6946 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:288)
02-12 14:34:39.648  6946  6946 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7872)
02-12 14:34:39.648  6946  6946 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
02-12 14:34:39.648  6946  6946 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
02-12 14:34:39.648  6946  6946 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
02-18 17:17:21.954 23838 23968 F libc    : Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x7b8038b000 in tid 23968 (binder:23838_4), pid 23838 (t.streetmeasure)
02-18 17:17:22.887 24879 24879 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
02-18 17:17:22.887 24879 24879 F DEBUG   : Build fingerprint: 'google/sunfish/sunfish:13/TQ1A.230205.002/9471150:user/release-keys'
02-18 17:17:22.887 24879 24879 F DEBUG   : Revision: 'MP1.0'
02-18 17:17:22.887 24879 24879 F DEBUG   : ABI: 'arm64'
02-18 17:17:22.887 24879 24879 F DEBUG   : Timestamp: 2023-02-18 17:17:22.125456263+0100
02-18 17:17:22.887 24879 24879 F DEBUG   : Process uptime: 87s
02-18 17:17:22.887 24879 24879 F DEBUG   : Cmdline: de.westnordost.streetmeasure
02-18 17:17:22.887 24879 24879 F DEBUG   : pid: 23838, tid: 23968, name: binder:23838_4  >>> de.westnordost.streetmeasure <<<
02-18 17:17:22.887 24879 24879 F DEBUG   : uid: 10031
02-18 17:17:22.887 24879 24879 F DEBUG   : signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x0000007b8038b000
02-18 17:17:22.887 24879 24879 F DEBUG   :     x0  b49286952e3edc98  x1  0000000000000000  x2  00000078b2df2804  x3  0000000000000002
02-18 17:17:22.887 24879 24879 F DEBUG   :     x4  0000000000000008  x5  0000000000000004  x6  0000000d00000011  x7  0000000d00000011
02-18 17:17:22.887 24879 24879 F DEBUG   :     x8  0000000000000000  x9  0000007b8038b000  x10 0000007c006e6a90  x11 000000000000000e
02-18 17:17:22.887 24879 24879 F DEBUG   :     x12 0000000000000008  x13 00000078b2df2cc8  x14 00000078b2df2d10  x15 000000006f732570
02-18 17:17:22.888 24879 24879 F DEBUG   :     x16 0000007c16bcb180  x17 0000007c189ab118  x18 00000078b239a000  x19 0000000000090006
02-18 17:17:22.888 24879 24879 F DEBUG   :     x20 b400007990522390  x21 0000000000000002  x22 00000078b2df2804  x23 00000078b2df2d1c
02-18 17:17:22.888 24879 24879 F DEBUG   :     x24 0000007c16bca370  x25 00000078b2df4000  x26 0000000000280001  x27 0000000000000008
02-18 17:17:22.888 24879 24879 F DEBUG   :     x28 00000078b2df2d64  x29 00000078b2df2790
02-18 17:17:22.888 24879 24879 F DEBUG   :     lr  0000007c16b9c4a0  sp  00000078b2df2790  pc  0000007c189ab13c  pst 0000000080000000
02-18 17:17:22.888 24879 24879 F DEBUG   : backtrace:
02-18 17:17:22.888 24879 24879 F DEBUG   :       #00 pc 000000000000113c  /apex/com.android.runtime/lib64/bionic/libdl.so (__cfi_slowpath+36) (BuildId: ce71fb830f8ed38a9446bf6688f75929)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #01 pc 000000000005549c  /system/lib64/libcamera_client.so (android::CameraMetadata::update(unsigned int, int const*, unsigned long)+312) (BuildId: a197830bb3e66bb5b88383c4fdfdb501)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #02 pc 000000000019ca9c  /system/lib64/libandroid_runtime.so (CameraMetadata_writeValues(_JNIEnv*, _jclass*, int, _jbyteArray*, long)+680) (BuildId: 291e123985c6451cfa9be22bc41e3502)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #03 pc 000000000030be14  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+148)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #04 pc 0000000000209a9c  /apex/com.android.art/lib64/libart.so (nterp_helper+1948) (BuildId: a49c773ef6221a996ecea990e9753caa)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #05 pc 00000000004384b0  /system/framework/framework.jar (android.hardware.camera2.impl.CameraMetadataNative.writeValues+4)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #06 pc 00000000020438b4  /memfd:jit-cache (deleted) (android.hardware.camera2.impl.CameraMetadataNative.setBase+772)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #07 pc 000000000020a2b0  /apex/com.android.art/lib64/libart.so (nterp_helper+4016) (BuildId: a49c773ef6221a996ecea990e9753caa)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #08 pc 00000000004381fc  /system/framework/framework.jar (android.hardware.camera2.impl.CameraMetadataNative.set+28)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #09 pc 000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: a49c773ef6221a996ecea990e9753caa)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #10 pc 0000000000438188  /system/framework/framework.jar (android.hardware.camera2.impl.CameraMetadataNative.set+8)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #11 pc 0000000002019208  /memfd:jit-cache (deleted) (android.hardware.camera2.impl.CameraDeviceImpl$CameraDeviceCallbacks.onResultReceived+776)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #12 pc 000000000202fa9c  /memfd:jit-cache (deleted) (android.hardware.camera2.ICameraDeviceCallbacks$Stub.onTransact+1260)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #13 pc 0000000000b3134c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Binder.execTransactInternal+1004)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #14 pc 0000000000b30e40  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Binder.execTransact+304)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #15 pc 000000000043436c  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+556) (BuildId: a49c773ef6221a996ecea990e9753caa)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #16 pc 00000000004c7ca4  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithVarArgs<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, std::__va_list)+828) (BuildId: a49c773ef6221a996ecea990e9753caa)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #17 pc 00000000005d4cac  /apex/com.android.art/lib64/libart.so (art::JNI<false>::CallBooleanMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+184) (BuildId: a49c773ef6221a996ecea990e9753caa)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #18 pc 00000000000c0494  /system/lib64/libandroid_runtime.so (_JNIEnv::CallBooleanMethod(_jobject*, _jmethodID*, ...)+120) (BuildId: 291e123985c6451cfa9be22bc41e3502)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #19 pc 000000000016cdf0  /system/lib64/libandroid_runtime.so (JavaBBinder::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+156) (BuildId: 291e123985c6451cfa9be22bc41e3502)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #20 pc 0000000000078980  /system/lib64/libbinder.so (android::BBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+228) (BuildId: 4924e90f9c6f8d2f340fcbd412099a9f)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #21 pc 0000000000076c98  /system/lib64/libbinder.so (android::IPCThreadState::executeCommand(int)+516) (BuildId: 4924e90f9c6f8d2f340fcbd412099a9f)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #22 pc 00000000000931a0  /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+548) (BuildId: 4924e90f9c6f8d2f340fcbd412099a9f)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #23 pc 0000000000092f68  /system/lib64/libbinder.so (android::PoolThread::threadLoop()+24) (BuildId: 4924e90f9c6f8d2f340fcbd412099a9f)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #24 pc 00000000000148e8  /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+528) (BuildId: 5a0d720732600c94ad8354a1188e9f52)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #25 pc 00000000000c8918  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+140) (BuildId: 291e123985c6451cfa9be22bc41e3502)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #26 pc 00000000000b63b0  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208) (BuildId: 4e07915368c859b1910c68c84a8de75f)
02-18 17:17:22.888 24879 24879 F DEBUG   :       #27 pc 00000000000530b8  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: 4e07915368c859b1910c68c84a8de75f)

(Just to be clear, I mostly wanted to document this (and not loose the crash log) in case this happens again/for more people. It might have very well just been a fluke, who knows.)

How to measure multiple points distance?

Hi @westnordost,

How can I measure multiple points distance in one frame.
As of now App is supporting only single direction distance.

My requirement is like, I am having four points AB, BC, CD, DA. I want to measure distance between all of them.

Could you please help me to achieve that .

Thanks

Android 11 won't install

Hello westnordost!

I own two cellphones that are operated by Android 11 and have Open GL Version 3.2

Google won't install the app, it says that my phones are not suitable for the app.

Could you change the manifest, so that android 11 is allowed?

StreetMeasure freezes on start

I have used StreetMeasure with Street complete successfully in the past with my current phone.
Since today the app just freezes on start. You see the initial camera picture but then it freezes. After a while the Android dialogue to close or wait comes up

What have I tried?

  • Force close and re open
  • Start as separate app and from Street Complete
  • Clearing cache and storage for the app
  • Reinstalling from Google Play
  • Double checked the permissions

Nothing changed.

Version 1.3
Android 14
Pixel 7

Not compatible...

Hey,
I would Like to usw street measure for street complete. Street complete works fine at Shiftphone 6 mq with Android 10.
Trying to Install streetmeasure leads to a Error in Playstore -my device ist "Not compatible". Any ideas how to solve this?

Thanks

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.