mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-11-13 15:51:00 +00:00
5112c96c05
The places list and the trip bundle resolve the country of every place without a cached region on each read, and that lookup was about 90% of their CPU time: it ray-cast every polygon of each candidate country, which is thousands of rings for a country that is mostly islands. A polygon whose outer ring's box does not hold the point is now skipped without walking it, and an answer is kept by coordinate pair (20,000 pairs, oldest out first), since the borders never change while the process runs. The answers are the ones the ray-cast alone gives; ATLAS-SVC-051 and ATLAS-SVC-055 compare every country against the reference lookup. Measured on a production build with a 360-place trip: GET places 22.7 ms -> 3.5 ms, GET bundle 27.5 ms -> 6.2 ms. A first lookup of a pair is about 1.8 times faster (90 us -> 50 us over 20 cities).