Ure android phone, should detect when u are 1km of and address (in this case a shop). Also when u are at 100 meters, and when u are in a shop.
when u are in a shop should be very precise, in size of it and perimeter. u can define how to do, if with pixels, or something.
With really low error meters, and not using to much battery (normal drein of it).
This is proof of concept, if u do well, i will give u more works.