Geocoder
Geocoder copied to clipboard
[Feature Request] Lookup by id (GoogleMapsProvider, Nominatim)
First of all, thanks for this great php package!
I have a feature request for getting address information by id instead of doing a full search again. I think many applications will store part of the geocoding response and eventually will re-fetch information for the stored part.
At the moment, with GoogleMapsProvider and NominatimProvider you can only do a reverse lookup by lat/lng or re-do the query. However both of the endpoints have a dedicated API for lookup (for google maps this even is the preferred way, because it will not count as a request as far as I know).
For OpenStreetMap it looks like this: https://nominatim.openstreetmap.org/lookup?osm_ids=NXXXXX.
It would be great if the providers would have a lookup method for this. An even better solution would be to extend the provider Interface (or have a 2nd interface "LookupAwareProvider" with a lookup action or the GeocodeQuery object with an id property and maybe also the Location interface.
If a provider defines an id for a location, it could be used for a lookup call.
I know, that I can easily achieve this by creating my own provider, however, if this feature is interesting for you, we could discus an solution and I could provide a PR for this.
Hello @franzwilding ,
That's indeed (IMHO) a good idea !
I think we could add it to our Geocoder
Interface rather easily.
What do you think about this @willdurand @Nyholm ?
Documentation:
- Nominatim: https://wiki.openstreetmap.org/wiki/Nominatim#Address_lookup
- Google Maps: https://developers.google.com/maps/documentation/geocoding/intro#place-id
Hey @jbelien,
I think an even better solution would be to extend the Gecoder Interface with an id-aware-geocoder interface, because some geocoders will not support an id, I guess?
You're right but that's not an issue.
Some providers do not support reverse geocoding either (have a look at AlgoliaPlaces for instance).
For consistency, I would add a lookup
function to the standard Geocoder
interace.
Ok cool. I will try to find time to create a PR for this!
@jbelien I finally found some time and implemented a first draft of the lookup action. in https://github.com/geocoder-php/Geocoder/pull/979. Once jenkins runs, we can see if this is a good solution
Thanks a lot @franzwilding ! 👍 I'll have a look at it as soon as possible.