StreetComplete
StreetComplete copied to clipboard
add functionality to show satellite map
This feature would be very helpful for the roof shapes.
Hmm, if you can see the roof shape from satellite, you could also do it from JOSM, wouldn't you?
On the technical side, I am not entirely sure if this is possible, but if it is, then it involves making the background of the Tangram-Es map invisible and showing the bing map behind it.
Yes of course but with this argument there is not much left for this app.
Yes, that'd be okay though. If it can be done more comfortably using JOSM, it should be.
Anyway, I will not close it, it is just very low priority for me.
You did not close it yet. I'll agree on the low-prio, only a nice-to-have feature, but could be implemented by contributors or so.
I'm not very experienced with JOSM but more comfortable than this 2-3 touchs approach is hard to imagine.
I really like StreetComplete for this ease of use. I don't know any other more comfortable OSM app. Super Arbeit!
I need to say it is even important for getting the number of floors. In some areas not all house shapes are correct. So a satellite image helps to see if someone tagged the wooden carport as part of the house. By the shape of the roof you can make out the shape of the house and tag the floors.
As I discussed in my ill-fated duplicate of this issue, satellite imagery can also be very helpful for orienting one's self on the map. Many quests can be hard to locate due to scarce map data, but satellite imagery would make them significantly easier to find.
Many quests can be hard to locate due to scarce map data
That does not speak for the map style… However, I have to agree… It's sometimes very difficult, especially when your compass is a little wrong and so you cannot even rely on the orientation.
However, this can also be fixed. (IMHO it would already help to show the points of what the each (any) quest is actually about, …)
… It's sometimes very difficult, especially when your compass is a little wrong and so you cannot even rely on the orientation.
The difficulty is also added to by the fact that the GPS position updates in jumps, which makes any surveying other than at a walking pace (e.g. as a passenger in a car or bus) quite hard.
Welll… that behavior of GPS is normal or a problem of your device. In cars speed or so I can see the GPS position quite well…
However, coming back to the maps issue… We have identified some problems, so may someone want to summarize (/list) it & open a new issue at https://github.com/ENT8R/streetcomplete-mapstyle or so?
I've added a comment to an issue there that I believe would be ameliorated with satellite view (but also improved map style): https://github.com/ENT8R/streetcomplete-mapstyle/issues/65#issuecomment-470497556
On the technical side, I am not entirely sure if this is possible, but if it is, then it involves making the background of the Tangram-Es map invisible and showing the bing map behind it.
looking at https://github.com/ENT8R/streetcomplete-mapstyle/blob/master/streetcomplete-satellite-style.yaml it should be possible to to it with an additional map style.
I tried to find out usage rules for Mapbox-hosted layer and failed, but I am betting that you must use Mapbox software, with Mapbox tracking enabled to (and probably also pay). Maybe it would be possible to use Bing aerial data here?
https://raw.githubusercontent.com/osmlab/editor-layer-index/gh-pages/sources/world/Bing.geojson list ELI entry for Bing, but somehow without URL format.
JOSm apparently has its own separate list that is also missing format - see https://josm.openstreetmap.de/wiki/Maps/Worldwide#Bingaerialimagery
I just managed to get raster tiles to work in StreetComplete, caching also worked.
I tested with non-satellite raster, now I will try to hunt down satellite map that will also work and has global coverage (Bing is promising but seems to have weird tile indexing).
Proof of concept is at https://github.com/westnordost/StreetComplete/commit/6b2085f07d75399a5586d33188ff42ab1c81987b
EDIT: And now I have a satellite/aerial view!
sources:
raster:
type: Raster
url: https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}
layers:
raster:
data: { source: raster }
draw:
raster:
order: 0
@westnordost So now I am ready to make PR fixing this (after finishing/getting closer to finishing with one of open ones).
I assume that single satellite/aerial map with global coverage is preferable over using full blown parser of https://github.com/osmlab/editor-layer-index that will generate map style with the best layer in a given area (as it would be hilariously complex without matching big benefit).
I am tempted ti just go with Esri - but at the very least I need to check license (it is included in JOSM but...). Maybe Bing is feasible.
Proof of concept is at 6b2085f
Weird, did you commit that into this repository? How is this possible?
Weird, did you commit that into this repository? How is this possible?
My branch is not listed at https://github.com/westnordost/StreetComplete/branches/all so I am guessing that it is contained to my fork repository and GitHub is showing this poorly.
Looking at git logs on command line confirms this.
@westnordost Can you add also https://github.com/ENT8R/streetcomplete-mapstyle/pull/73 to the SC repo? This way I would be able to start adding ability to use satellite/aerial without fragile/convoluted merges.
EDIT: done
Main question is how UX should be implemented. Currently map style is bundled with dark/light mode.
Current options are:
Auto Light Dark System default
I am planning to split this setting in two and have:
(1) Night mode with the same settings as now:
Auto Light Dark System default
(2) And map style settings:
Map Satellite (Esri)
Map style would follow UI style as it is doing now.
Optionally, have in settings checkbox "replace map by Esri aerial view"
(note, full attribution would still be added somewhere - see https://github.com/esri/esri-leaflet#terms - so maybe do not credit/blame Esri for aerial quality directly in settings?)
Esri would simply best appear in the lower right corner, along with Openstreetmap contributors? Or maybe "Aerial (by Esri)" in the settings is enough?
If you display an ArcGIS Online service in any Leaflet application, we require that you include Esri attribution and recognize data providers.
is in https://github.com/esri/esri-leaflet#terms
But I researched a bit more and found https://www.arcgis.com/home/item.html?id=8e90a00a0a6845a49262e0b756f57a10
The following use cases are permitted for the World Imagery basemap: (...) Sharing Data with Open Data Sites: Building on the use cases above, Esri and its imagery contributors grant Users the non-exclusive right to use the World Imagery map to trace features and validate edits in the creation of vector data. Users that create vector data from the World Imagery map can publicly share that vector data through a GIS data clearinghouse of their own or through another open data site. Public sharing can also be achieved through ArcGIS Open Data or the OpenStreetMap (OSM) Initiative. For ArcGIS users that want to contribute such vector data to OSM, Esri provides applications and services directly accessible from ArcGIS platform. Users acknowledge that any vector data contributed to OSM is then governed by and released under the OpenStreetMap License (e.g. ODbL).
That has no attribution requirements whatsoever and certainly is without explicit requirement to list all involved organizations.
In JOSM there is solely tiny "Terms & Feedback" linking to https://wiki.openstreetmap.org/wiki/Esri
So
"Aerial (by Esri)" in the settings is enough
seems to be correct
What about mentioning aerial in changeset source field?
This is a thing that may be either "nice to have" (in that case I will probably skip it, at least initially) or "really should be done" (in such case I will include in the PR from start).
Hmm right, the issue might be that people start answering quests based on assumptions from (blurry) aerial imagery. For example "This looks like asphalt", without being on site. On the other hand, there is the warning if he is not really on-site. So it should be okay. The aerial source should not be mentioned because the information should not be drawn from there.
Exactly, we already prevent users from answering if they try to answer quests too far away. We cannot protect against all pitfalls anyway. (and even if they use aerial image, it is at least better than just guessing and not using it :thinking:)
This needs to be seen in practice, but if I think about it, I personally may really use the image if I could use it today. When looking into a nearby street for the surface quest, I would possibly indeed double-check on the image that also the end of the road does not have a different surface. (I guess that is a thing you should see :thinking:)
Generally, I'd say so, at least for asphalt – finding this out from an aerial image is not a bad method.
Depends on the resolution. I brought up this example because often you cannot distinguish asphalt from certain types of sett from aerial imagery.
I notice that this issue is marked as fixed. Yet, I cannot figure out how to use satellite imagery in StreetComplete.
Do I need to build StreetComplete myself with a special configuration option to use this?
Is there an advanced setting I need to set to enable this?
Am I missing something?
I have tried the F-Droid build, the Github build, and the Google Play build on multiple phones with various versions of Android and I have hunted through the settings and menus. So, if this feature is enabled, it only works on a small subset of devices or I am really bad at finding things.
@TimMagee It is not your fault at all! This feature is not yet available despite being partially implemented.
I was supposed to finish it to add offline support (see especially #2794) but it has not happened yet.
Should this issue be opened again? Satellite / aerial images still cannot be selected, and the current implementation is broken/crashing (you can try by manually editing shared preferences file)
It would be very helpful to have satellite/aerial imagery now we have the ability to add addresses and shops to the map. If buildings aren't already mapped, it can be hard to work out where to put the nodes.
If buildings aren't already mapped, it can be hard to work out where to put the nodes.
Ummm, why do you think so @dbdean ? When on the ground, you're in the perfect position to put nodes at exactly the right location where it would be most useful as a node - at the entrance to that shop or house. App knows where you are (due to GPS) even without any map being shown, so it is enough that you get close to the entrance.
if buildings are mapped as polygons...
The more problematic IMHO is if buildings are mapped as polygons, as adding nodes to map does not (AFAIK) do snap-to-building-outline (which would be the most useful way to map, as otherwise any map aligning by other mappers usually results in nodes ending up being shown on the wrong side of the road/footway, disassociated from building etc)
However, if aerial background is implemented, and user enables it, we should add appropriate tags to the changeset (i.e. imagery_used=*).
We might also consider removing source=survey
from such changesets, as it becomes much more likely that StreetComplete would not actually be used on-site (even with our dismissable warnings...) (related: https://github.com/streetcomplete/StreetComplete/discussions/4017, https://github.com/streetcomplete/StreetComplete/issues/3137)
The GPS position can be somewhat off in street canyons (e.g. apartment blocks on both sides) due to reflections.
The more problematic IMHO is if buildings are mapped as polygons, as adding nodes to map does not (AFAIK) do snap-to-building-outline (which would be the most useful way to map, as otherwise any map aligning by other mappers usually results in nodes ending up being shown on the wrong side of the road/footway, disassociated from building etc)
You can tap on the building to assign it a housenumber.