Unfortunately that type of optimization is not possible in the widget itself. The nanoflow is executed client side and has no knowledge of the distance. But… There is a "Timer Status Attribute" that essentially can do the job. If your context object changes (let's say you use this dataview to determine if you are in range of the location), then the Microflow timer can be switched on/off using that attribute.
You'll still need to determine this location on a time-basis, so I am not sure how much battery optimization you can do at that point.