I ran a traceroute on a url to a server we own in New York. I'm in central Florida. Traceroute showed the request being directed to west Florida and then far south Florida before finally being directed north to Virginia and then New York. I thought edge routers could discover more direct routes. What would cause the request to not start hoping north from the start? Is this controlled by my ISP?
The virtual world and physical world rarely line up. Just because machines are physically close, doesn't make them logically close. Traffic goes where routing entries, and interconnects take it.
Eons ago, I demonstrated this very thing with two PCs sitting on the same table. Each dialed into different ISPs. Packets between the machines went half way around the country. Why? Because the two ISPs aren't locally peered. The traffic has to flow to where ever the two meet -- or be handed to intermediate carrier(s) who can bridge the gap.
Less eons ago, the ISP I worked for fixed such a problem for a customer. They came to us with issues transferring large blocks of (weather) data. Despite the end-points being 30mi apart, the packets were traveling thousands of miles. Private peering with MCNC (NCREN) turned a 7-hop, +50ms delay into a single (IP) hop of less than 4ms. (It was 5 hops, but you can't see ATM (layer2) with IP (layer3))
Think of it like rivers. If you're on a raft in one, getting to the other may take miles before they hit a common body of water. "But I can see the other river!" doesn't matter when the waters from each don't mix.
The Internet is composed of ISPs connected to each other, passing traffic from one to the other. As your traffic passes from ISP to ISP, each ISP makes its own decisions on how to route your traffic, and some ISPs do not want you to casually discover their internal networks, so they have various methods to detect traceroute and reroute it, or they may use MPLS, tunnels, etc., where you do not see all the hops along the way.
The result is that what you see in traceroute on the public Internet may bear no resemblance to how your normal traffic traverses the public Internet. Traceroute is a very useful tool for use on your own network, where you know what the results should be, but it can be very misleading when you use it on the public Internet or a network not controlled by you.
Also, remember that a more direct path may not be the best or fastest path.