How to collect street name based on Geopoint?

I am having some difficulties when the collectors type the names of streets, avenues, etc. Because they tend to write wrong names. Is there a way to transform the coordenates into street names? Or make it so when pin point the map appear the street name?

Thanks in advace!

Hi @percezione,

Welcome to the community! Would you mind using the placement-map under the appearance of the geopoint question type. This should allow you to select a geopoint from a map.

1 Like

Hi @Kal_Lam, thanks for answering my question! I used the placement-map in the past, with ODK. But it won’t give me the street name, just GPS coordinates. I was wondering if it’s possible to retrieve the street’s name and even neighborhood’s name after pointing on the map with the placement-map.

Thanks.

Converting GPS coordinates to a (street) address is called reverse geocoding. This is technically quite feasible, and there are a number of websites that will do it, eg https://www.latlong.net/Show-Latitude-Longitude.html. However, this feature is typically not available on (free) mobile apps because (a) it requires a live network connection to (b) a dedicated geo server running the necessary service and geo-database! So you will find that any 3rd-party websites offering an API to perform reverse-geocoding are either a paid service (requiring a token or other authentication mechanism) or if a free service they will impose a strict cap on the number of requests they’ll satisfy from a given client in a given time period. These limitations typically make it infeasible to include such a feature in a free, offline capable mobile app like Collect.

You best bet would probably be to capture a GPS location in your form, and then perform a reverse-geocode to convert this to a (permanent) address field in later processing. And if you have a very large number of submissions to process you may have to consider a paid service (or convert them individually manually using a free website, which will be tedious).

3 Likes

Thanks for your help @Xiphware! Are any of those paid services already implemented on KoboCollect?

Another question, it would be possible to retrieve the street name if I am willing to use offline maps?

1 Like

Nope. You would probably need to fork KoboCollect and add in custom support for your desired reverse-geocode provider, since they will all have their own slightly different APIs…

I’m not quite sure what you mean by “offline maps” in this context. If you want to perform reverse-geocode lookups offline then your (custom) app would somehow have to maintain the rather huge database necessary to perform this task [which is why you typically have to pay for such services].

But if you are interested in offline maps you may be interested in reading up on how to install custom map tiles on your device: https://docs.opendatakit.org/collect-offline-maps/. Also there is a recent discussion on adding MapBox vector tiles to ODK Collect (aka KoboCollect). However neither of these perform reverse-geocode lookups AFAIK.

2 Likes

Ok, thanks Xipware!

1 Like