I have a route between coordinates
[-41.321305, 174.825574]), with a known traversal time (e.g. 11 minutes).
I wish to identify the coordinate location
x < 11 mins along the route.
i.e. if the total route length is
11 mins and
x = 8, is there a function to quickly find the coordinate
8/11) along the route?
My current method: iterate over every adjacent pair of coordinates in the route (
next), calculate and sum the time distance between them until I reach
x, and then linearly interpolate a point between the final
next coordinates. Inefficient.
I’m not aware of any such libraries.
The simplest optimization I can think of is starting at the point that is closer to your coordinate, i.e for your example, starting from the end point and finding the coordinate that is
27.27% from your end point.
I don’t think you’ll be able to run this a lot faster, but if you’re using the same route multiple times for such calculations, you can probably pre-calculate the relative distance for all points comprising your route, and then be able to run a binary search on your point list.
Kia ora jschnell,
Thanks for getting back to me. No worries re: existing methods. Your idea for (potentially) halving compute is a good one.
If ORS were to implement this (or a better version) natively at some stage, it would be fantastic. In the meantime, I’ll make do!
Another question, inbound.