When interpolations are generated, they are always of type address, however it's possible for the API to return these results even when the layers are specified in a way that excludes the address layer.
In this case the query specifically requested layers=street yet the result set contains rows from the address layer.
The cause of this issue is in the interpolationShouldExecute predicate, which should take into account the requested layers and not execute if the address layer is not targeted:
When interpolations are generated, they are always of type
address
, however it's possible for the API to return these results even when the layers are specified in a way that excludes theaddress
layer.For example: https://pelias.github.io/compare/#/v1/search?layers=street&text=10+Brunswick+Street%2C+VIC
In this case the query specifically requested
layers=street
yet the result set contains rows from theaddress
layer.The cause of this issue is in the
interpolationShouldExecute
predicate, which should take into account the requested layers and not execute if theaddress
layer is not targeted:https://github.com/pelias/api/blob/e6f532b18577c8436a10651c07e5a2e9f5fdb1ea/routes/v1.js#L182-L187
Note: this should also improve performance for these queries.