Release Neutron Highway long range route planner

Hey there @Spansh ,

Just wanted to let you know (in case you didn't already), the Neutron Router seems kinda broken, it keeps on loading for ever, no matter the selected source / destination system / defined parameters. Confirmed by other people on official discord.

(BTW, fresh new player here, thanks a lot for your work, I'm lovin the road to riches too :3 )
 
I love using your Tourist Route tool to calculate the best route when making the rounds of the engineers. It saves a ton of jumps, thank you. But I often start off in one system, where I buy the ship, and end up in another, my home system. I may be missing something, but is there an option to do this in the tool? I.e. to be able to fix both the start and the end point of the journey in different systems. If not, could it be added to the tool?
 
Last edited:
I love using your Tourist Route tool to calculate the best route when making the rounds of the engineers. It saves a ton of jumps, thank you. But I often start off in one system, where I buy the ship, and end up in another, my home system. I may be missing something, but is there an option to do this in the tool? I.e. to be able to fix both the start and the end point of the journey in different systems. If not, could it be added to the tool?
Not currently but it's something I could add
 
First off: huge Spansh fan - makes long distance speed trips (ex Hull Seal rescues) - especially when paired with the EDMC namesake plug-in - so much less stressful...I’ll explore when I want to - but sometimes you gotta just ZOOOOM!!

So to the question of fastest route (no high jacking intended) - D2EA (Down To Earth Astronomy) host has created a route optimization program - and has all the engineers - and other key systems (ex Shintarta Dehzra) already in quick links....Once I established the optimized route to the 5-6 engineers who can apply Experimental Engineering to my pinned blueprints - then I simply put sequential numbers as prefixes for my engineer bookmarks in the In-Game GalMap....

From that point on - whenever I am equipping a new ship - I buy it and all the modules in my Base Station (or Shinny) - apply all the pinned engineering blueprints- and then just need to spend 1-2 hrs flitting about to apply all the EE finishes...

Here’s the D2EA YT video with links to D/L or use online version:
D2EA Route Planner

o7

Edit: Here's my Engineering bookmarks - If I am doing a build for bounty hunting / combat - I only use MCs and Pulse Lasers so far:
1584025545232.png
 
Last edited:
First off: huge Spansh fan - makes long distance speed trips (ex Hull Seal rescues) - especially when paired with the EDMC namesake plug-in - so much less stressful...I’ll explore when I want to - but sometimes you gotta just ZOOOOM!!

So to the question of fastest route (no high jacking intended) - D2EA (Down To Earth Astronomy) host has created a route optimization program - and has all the engineers - and other key systems (ex Shintarta Dehzra) already in quick links....Once I established the optimized route to the 5-6 engineers who can apply Experimental Engineering to my pinned blueprints - then I simply put sequential numbers as prefixes for my engineer bookmarks in the In-Game GalMap....

From that point on - whenever I am equipping a new ship - I buy it and all the modules in my Base Station (or Shinny) - apply all the pinned engineering blueprints- and then just need to spend 1-2 hrs flitting about to apply all the EE finishes...

Here’s the D2EA YT video with links to D/L or use online version:
D2EA Route Planner

I took a look at the online route planner (both through the source and attempting to use it) and have a few comments.

Whilst it might work for 4-8 stops if you try much more than that it's going to kill your browser. The reason being is that it uses the brute force method of finding the optimised route, which is also known as the travelling salesman problem (a well known problem in computer science), as such, the way it's programmed it will essentially use up all the memory on your computer precalculating all the routes before then comparing them to each other to find the shortest. An easy algorithm to implement which doesn't require this is 2-opt (https://en.wikipedia.org/wiki/2-opt) which does produce pretty good routes (This is what the tourist router on my site uses, I tend to start with a greedy nearest neighbour route before optimising). The current state of the art is the Lin-Kernighan algorithm which I intend to implement at some point though it's a phenomenally difficult algorithm to understand.

It appears to be optimising LY distance, which although relevant won't neccesarily produce the shortest (time) route for a commander. You actually want to minimise number of jumps. Because calculating every single jump you need to make is somewhat awkward I use an estimate of getting roughly 90% of your jump distance closer to your destination with each jump, you then divide the distance by this and round up. This appears to be a pretty good estimate, especially in the bubble.

It's somewhat user unfriendly to close the select box when someone has clicked an entry in it, especially as it's likely the next thing they'll want to do is add another item from the list.

At some point I intend to create a page for ship building, whereby you can import a coriolis build (including engineers) and it'll optimise how to get it for the cheapest and engineer it in the quickest way, whilst I have all the information for that available I haven't yet started it.
 
I've read a lot of them, including that one. I did look and see if that was useable without much modification and I can't remember why I discounted it but it might have been due to the codebase (which I seem to remember wasn't amazing quality).

At some point I will revisit it and attempt it but for now the 2-opt I'm using seems to do pretty well. At the moment I'm mainly focussed on making sure my data warehouse has accurate and up to date data and inbetween that attempting to figure out a way of finishing my generic routing algoithm (which I'm struggling with a little for several reasons I'll detail below).

Side note, if anyone feels like they have some expertise in this area and would like to help out here I'd certainly be interested. The basic algorithm works, and ignoring fuel usage it can generate a route within about a minute but once I factor in fuel usage it sends the algorithm quite wonky and whilst it finishes, it can take a very long time. A* isn't an algorithm I'm as familiar with as some others so any advice would be appreciated. It currently takes into account neutron stars, fuel usage, the guardian FSD booster and FSD synthesis.

My main issues as I understand them are:

1. The algorithm is much slower, I feel like the best way of improving it would be to have it analyse less data (discarding systems it knows cannot possibly be on the optimal route), currently the algorithm stops when it finds the first route which gets all the way, rather than completing exhaustively. At that point it has several million systems on the open list, exhausting those would take forever. I anticipate being able to hand optimise the code for at best a 50% speed increase but this would not be enough, it's already using quite a lot of algorithmic optimisations including priority_queue (currently using binomial heap, an R* tree for rapid potential next system finding and a sparse hash for the closed list.
2. I'm struggling a little with the cost function (I'm torn between pesimistic and optimistic here, pessimistic will likely find a route faster but may miss unusual options which may prove faster).
3. It actually doesn't seem to find optimal routes yet, the best route it found between Sol and Sagittarius A* was 100 or so jumps (using Esvandiary/Alots current ship build), this implies that the algorithm isn't being selective or optimistic enough enough.
4. I have reached out to Cmdr Steve Falken (via the forums here, reddit and his email) and have yet to receive a response, it's been a while so I'm not hopeful. He's the pilot who wrote something which calculated his optimal current record breaking route and claimed his code completed in roughly a minute.
 
Thank you @SpaceTrash67. Looks like I can use DtEA while I wait for the hi-tech version from Spansh. :)

@Spansh a ship building page sounds incredible (and complicated to implement). One comment, though you probably know this already, is that most of my (and everyone else's?) engineering is done via blueprints. I then do a round of engineers to do anything I don't have on blueprints and add the experimentals. So if the planning was to be automated it would be helpful to pickup the blueprint list in some manner. Apologies if this is just obvious.
 
Relating primarily to: Engineer visits for Experimental Effects

Assuming that you have “all” (ie needed/relevant) engineers unlocked - I just wanted to know the “least number” of engineers to visit to apply EE (assuming you have the base / Grade 5 (or highest available) blueprints previously pinned)...

As I find myself frequently answering the same questions to new Cmdrs in Discords - I tried condensing all the main ED “reference” engineering / farming / materials / mining infos into a single document:

ED Quick Reference

If you look in the 1st tab - “Engineer-Modules” - I have highlighted the “best” (YMMV) blueprints to pin at each....I also added a line (row 5) - for Base (B), E (Exploration) and W (Weapons)...(I’m mainly into exploration- and so the combat (primarily REZ / Bounty Hunting) I have done so far is just using Oversized MCs and LR Pulse Lasers)

My intent in highlighting the engineer and Base / Exploration modules was to simplify / streamline my ship building process - especially if I have been out in The Black for an extended period...

So that table then informs the Route Plotter from D2EA - which is then how I number my Engineer Bookmarks in GalMap

HTH - o7
 
Relating primarily to: Engineer visits for Experimental Effects

Assuming that you have “all” (ie needed/relevant) engineers unlocked - I just wanted to know the “least number” of engineers to visit to apply EE (assuming you have the base / Grade 5 (or highest available) blueprints previously pinned)...

HTH - o7

My initial thought was that shouldn't be too difficult to calculate, I can look at doing that sometime. Essentially it's a cross between a bin packing algorithm and a logic puzzle (think wolf, sheep and chicken crossing a river). However, taking into account the possibility of pinning blueprints complicates matters somewhat because you might end up with a route like the following:

1. Visit engineer A
2. Engineer blueprint X from 1 to 5
3. Pin blueprint Y at level 3
4. Visit engineer B
5. Engineer blueprint Z from 1 to 5
6. Engineer blueprint Y from 1 to 2
7. Engineer pinned blueprint Y to 3
7. Pin blueprint W at level 5
8. Visit engineer C
9. Engineer blueprint Y from 4 to 5
10. Engineer blueprint W from 1 to 4
11. Engineer pinned blueprint W to 5

That's a worst case scenario but shows how complex the routing could get, I'll leave it percolating in the back of my head and see if I can come up with something. It can probably be combined with the ship builder so it would work like the following:

1. Import coriolis build
2a. Select modules, ships you already have (if any)
2b. Select which modules are already engineers to which level
2c. Select current pinned blueprints (if any)
2d. Select engineers which you have available at various levels
2e. Select permits you have

Step 2 could potentially be largely filled in from the journal/inara/companion API to make it easier to use.

3. Select options you want to minimise (cost, travel time, both)
4a. Calculate what materials you would need (though I believe you can already get this from other sites).
4b. Calculate optimal route to buying ship, then modules and engineering, taking into account the factors stated previously
 
Last edited:
I've read a lot of them, including that one. I did look and see if that was useable without much modification and I can't remember why I discounted it but it might have been due to the codebase (which I seem to remember wasn't amazing quality).

At some point I will revisit it and attempt it but for now the 2-opt I'm using seems to do pretty well. At the moment I'm mainly focussed on making sure my data warehouse has accurate and up to date data and inbetween that attempting to figure out a way of finishing my generic routing algoithm (which I'm struggling with a little for several reasons I'll detail below).

Side note, if anyone feels like they have some expertise in this area and would like to help out here I'd certainly be interested. The basic algorithm works, and ignoring fuel usage it can generate a route within about a minute but once I factor in fuel usage it sends the algorithm quite wonky and whilst it finishes, it can take a very long time. A* isn't an algorithm I'm as familiar with as some others so any advice would be appreciated. It currently takes into account neutron stars, fuel usage, the guardian FSD booster and FSD synthesis.

My main issues as I understand them are:

1. The algorithm is much slower, I feel like the best way of improving it would be to have it analyse less data (discarding systems it knows cannot possibly be on the optimal route), currently the algorithm stops when it finds the first route which gets all the way, rather than completing exhaustively. At that point it has several million systems on the open list, exhausting those would take forever. I anticipate being able to hand optimise the code for at best a 50% speed increase but this would not be enough, it's already using quite a lot of algorithmic optimisations including priority_queue (currently using binomial heap, an R* tree for rapid potential next system finding and a sparse hash for the closed list.
2. I'm struggling a little with the cost function (I'm torn between pesimistic and optimistic here, pessimistic will likely find a route faster but may miss unusual options which may prove faster).
3. It actually doesn't seem to find optimal routes yet, the best route it found between Sol and Sagittarius A* was 100 or so jumps (using Esvandiary/Alots current ship build), this implies that the algorithm isn't being selective or optimistic enough enough.
4. I have reached out to Cmdr Steve Falken (via the forums here, reddit and his email) and have yet to receive a response, it's been a while so I'm not hopeful. He's the pilot who wrote something which calculated his optimal current record breaking route and claimed his code completed in roughly a minute.
Sorry, I'm an actuary/budding data scientist, and only an amateur computer programmer. I looked into knapsack algorithms when I was helping out trade dangerous, but this is a graph-theory problem more than it is a packing problem. If I come across anything else, I'll drop you a line here, and if you want a pair of amateur eyeballs on your codebase, I can always try (I'm fluent in R, decent in Python, literate in Pascal and Fortran, and can, with trouble, understand algorithms in C/C++).

Maybe enhancing the code from 2-opt to 3-opt is a smaller leap that will yet provide better results?
 
Sorry, I'm an actuary/budding data scientist, and only an amateur computer programmer. I looked into knapsack algorithms when I was helping out trade dangerous, but this is a graph-theory problem more than it is a packing problem. If I come across anything else, I'll drop you a line here, and if you want a pair of amateur eyeballs on your codebase, I can always try (I'm fluent in R, decent in Python, literate in Pascal and Fortran, and can, with trouble, understand algorithms in C/C++).

Maybe enhancing the code from 2-opt to 3-opt is a smaller leap that will yet provide better results?

Unfortunately the 2-opt to 3-opt thing is for my tourist router/road to riches (visit these x places in the best order), it could, I suspect, with some careful thinking potentially be used for the engineer thing too. The code for the A* router is seperate from the rest of my codebase, so I'd be willing to stick it on Github.

At the moment it's just a pair of standalone C++ programs with hardcoded parameters which once it was working to satisfaction I'd refactor into a library. The two programs are

1. GalaxySpatial: This takes my galactic dump and generates a spatial index file using libspatialindex to be used by the actual router (used for rapidly looking up potential jump systems). This is available at https://github.com/spansh/galaxy-spatial/tree/spatialindex (You specifically need the spatialindex branch as the master branch was for some guys working on simdjson)
2. AStarRouter: This uses the generated index (currently totals around 7GB) and some hardcoded parameters for @Esvandiary 's Buckyball ship build to generate a route between Sol and Sagittarius A*. This is available at https://github.com/spansh/a-star-router

The code isn't the cleanest in either of the programs (they are both work in progress) but I don't think it's the worst I've ever written. Neither of them have been attempted to compile on anything other than my ubuntu machines, so some things may need tweaking in the Makefile
 
Last edited:
Wow, you're parsecs beyond my rudimentary C/C++ skills. Is it rude of me to ask if you code for a living as well as a hobby? In my defense, I am a basic-level patron of yours :D (really, you're work is phenomenal!).
 
Wow, you're parsecs beyond my rudimentary C/C++ skills. Is it rude of me to ask if you code for a living as well as a hobby? In my defense, I am a basic-level patron of yours :D (really, you're work is phenomenal!).
I do program professionally though it has been a long time since I did it in C++. I started coding in C++ again only a year or two ago when I needed some extra speed and optimisation for my original route planner, since then I've done quite a bit on the site in C++.
 
Hello Spansh, I want to thank you for the route-plotters you've made.
it is so nice to use your multi hop optimizations when going on long trips, as opposed to trying to eyeball what order would be optimal.

I have a question/request i guess.

I'm in the middle of making a huge (as of this moment) ~6000 stop route, since punching those in to your interface is kind of tedious, i've been feding it directly into the api instead.

But at about 142 stops, i seem to have hit a limitation of some sort.

I can send this through firefox,
PHP:
https://spansh.co.uk/api/tourist/route?range=70&source=Sol&destination=Flyae Flyoo DG-E d12-33&destination=Flyooe Flyoo ZK-O d6-0&destination=Flyooe Flyoo BG-N d7-9&destination=Flyae Flyoo YQ-C d8&destination=Ploi Aoscs RC-Z b27-291&destination=Ploi Aoscs NN-T e3-458&destination=Ploi Aoscs HY-H d10-453&destination=Ploi Aoscs AT-E b43-10&destination=Ploi Aoscs UO-X c2-8&destination=Plaa Aoscs IP-L b9-17&destination=Ploi Aoscs AV-Y f588&destination=Ploi Aoscs MC-B d1-11&destination=Ploi Aoscs IW-C d656&destination=Ploi Aoscs TD-E b1-1&destination=Ploi Aoscs CQ-V d3-285&destination=Ploi Aoscs MY-F b54-14&destination=Ploi Aoscs UW-E c11-1055&destination=Ploi Aoscs FS-A d1-110&destination=Ploi Aoscs MC-D d12-3154&destination=Flyae Flyuae CC-S d5-2497&destination=Flyae Flyuae QD-T e3-998&destination=Flyae Flyuae YS-Z b5-126&destination=Flyae Flyuae AG-C c1-633&destination=Flyae Flyuae DH-M d7-257&destination=Flyae Flyuae ZO-Z d689&destination=Flyae Flyuae KN-A d1-1529&destination=Flyae Flyuae ZN-I c26-1245&destination=Flyeia Flyi ZJ-P d6-578&destination=Flyae Flyuae DO-F d12-5557&destination=Flyae Flyuae KK-A d615&destination=Flyae Flyuae WF-V d3-831&destination=Flyae Flyuae XK-V c3-396&destination=Flyae Flyuae WB-K d9-1202&destination=Flyae Flyuae EL-N d7-14&destination=Flyae Flyuae UJ-R e4-514&destination=Flyae Flyuae UP-R b23-43&destination=Flyae Flyuae CC-I c24-40&destination=Flyae Flyuae EG-L b26-22&destination=Flyae Flyuae VO-H d10-430&destination=Flyae Flyuae IE-B c29-536&destination=Flyae Flyuae SH-X c16-340&destination=Flyae Flyuae DR-D d12-620&destination=Flyae Flyuae LO-Z d13-60&destination=Flyae Flyuae ZW-I d10-242&destination=Flyae Flyuae RK-V d3-502&destination=Flyae Flyuae BG-O e6-746&destination=Teqia TA-A c29-31&destination=Flyae Flyuae FO-G d11-289&destination=Flyae Flyuae QN-T d3-339&destination=Flyae Flyuae II-B d13-39&destination=Flyae Flyuae JH-K d9-208&destination=Flyae Flyuae MI-A d1-1164&destination=Flyae Flyuae FP-Z d95&destination=Flyae Flyuae IX-S d4-1417&destination=Teqia EG-Z c28-63&destination=Ploi Aoscs NT-Q c18-892&destination=Flyae Flyuae XO-Z d441&destination=Flyae Flyuae AL-V d3-424&destination=Flyae Flyuae QJ-D b56-21&destination=Flyae Flyoo EB-U d4-108&destination=Ingobs UK-E d12-0&destination=Cheethai AC-B d1-1&destination=Cheethai OP-H b13-0&destination=Cheethai DZ-M b48-4&destination=Cheethai AK-W b45-0&destination=Cheethai RO-Z d47&destination=Cheethai RR-L c21-58&destination=Cheethai MD-Y c2-5&destination=Cheethai QY-R d4-7&destination=Phaa Breae KV-U b49-0&destination=Cheethai BA-Q c8-2&destination=Cheethai HF-O b36-0&destination=Cheethai UF-C c14-5&destination=Cheethai OP-H b13-0&destination=Cheethai XP-P d5-62&destination=Cheethai HF-O b36-0&destination=Cheethai ZO-A d30&destination=Cheethai XF-E d12-60&destination=Phaa Breae QZ-E d12-12&destination=Cheethai HN-L b49-2&destination=Cheethai XF-E d12-60&destination=Plio Scrua JR-V e2-6&destination=Cheethai DQ-F d11-39&destination=Cheethai UY-S e3-106&destination=Plio Scrua DG-M d8-0&destination=Cheethai QE-W b29-4&destination=Plio Scrua VR-W b47-0&destination=Cheethai LY-I c9-7&destination=Cheethai ZA-P b47-3&destination=Cheethai YX-F d12-1&destination=Cheethai RX-Z b43-1&destination=Cheethai YP-P d5-70&destination=Cheethai VA-F d11-100&destination=Cheethai AL-F c14-0&destination=Cheethai DH-C d13-18&destination=Cheethai DC-Z b15-0&destination=Cheethai PZ-O e6-12&destination=Cheethai AW-N d6-260&destination=Cheethai BN-A d14-29&destination=Cheethai RX-Z b43-1&destination=Cheethai RT-Q d5-21&destination=Cheethai JI-S d4-19&destination=Ploea Aowsy EH-Z c15-125&destination=Ploea Aowsy VJ-X d2-559&destination=Ploea Aowsy IM-U d3-299&destination=Ploea Aowsy KL-Y d8261&destination=Ploea Aowsy KZ-M d8-142&destination=Ploea Aowsy XL-Q b10-6&destination=Ploea Aowsy IG-J b14-2&destination=Ploea Aowsy JA-A d4651&destination=Ploea Aowsy ZP-P d5-6441&destination=Ploea Aowsy XO-D c1-14&destination=Ploea Aowsy HP-D d13-73&destination=Ploea Aowsy KO-G b56-12&destination=Ploea Aowsy BO-F d12-110&destination=Ploea Aowsy QP-E b55-26&destination=Ploea Aowsy MA-L d9-1&destination=Ploea Aowsy MO-F c12-74&destination=Ploea Aowsy EW-E d11-2575&destination=Ploea Aowsy KV-B c14-111&destination=Ploea Aowsy ZE-D b56-43&destination=Ploea Aowsy AR-R c19-141&destination=Ploea Aowsy HN-R d5-186&destination=Ploea Aowsy GI-F b16-8&destination=Ploea Aowsy YN-B b55-144&destination=Phaa Briae HW-N e6-86&destination=Ploea Aowsy QD-Y c28-9&destination=Ploea Aowsy AH-D b57-21&destination=Ploea Aowsy JT-G b43-5&destination=Ploea Aowsy EH-O b25-5&destination=Ploea Aowsy WA-N d7-343&destination=Ploea Aowsy PF-P c6-341&destination=Ploea Aowsy GW-N d6-3979&destination=Ploea Aowsy TM-Z c27-93&destination=Ploea Aowsy CT-G d11-258&destination=Ploea Aowsy AR-Z b28-54&destination=Ploea Aowsy CD-H d11-74&destination=Ploea Aowsy QQ-K b25-14&destination=Cheethai AA-A e281&destination=Ploea Aowsy YW-Q b36-16&destination=Ploea Aowsy JI-A d14-443&loop=0
but not this
PHP:
https://spansh.co.uk/api/tourist/route?range=70&source=Sol&destination=Flyae Flyoo DG-E d12-33&destination=Flyooe Flyoo ZK-O d6-0&destination=Flyooe Flyoo BG-N d7-9&destination=Flyae Flyoo YQ-C d8&destination=Ploi Aoscs RC-Z b27-291&destination=Ploi Aoscs NN-T e3-458&destination=Ploi Aoscs HY-H d10-453&destination=Ploi Aoscs AT-E b43-10&destination=Ploi Aoscs UO-X c2-8&destination=Plaa Aoscs IP-L b9-17&destination=Ploi Aoscs AV-Y f588&destination=Ploi Aoscs MC-B d1-11&destination=Ploi Aoscs IW-C d656&destination=Ploi Aoscs TD-E b1-1&destination=Ploi Aoscs CQ-V d3-285&destination=Ploi Aoscs MY-F b54-14&destination=Ploi Aoscs UW-E c11-1055&destination=Ploi Aoscs FS-A d1-110&destination=Ploi Aoscs MC-D d12-3154&destination=Flyae Flyuae CC-S d5-2497&destination=Flyae Flyuae QD-T e3-998&destination=Flyae Flyuae YS-Z b5-126&destination=Flyae Flyuae AG-C c1-633&destination=Flyae Flyuae DH-M d7-257&destination=Flyae Flyuae ZO-Z d689&destination=Flyae Flyuae KN-A d1-1529&destination=Flyae Flyuae ZN-I c26-1245&destination=Flyeia Flyi ZJ-P d6-578&destination=Flyae Flyuae DO-F d12-5557&destination=Flyae Flyuae KK-A d615&destination=Flyae Flyuae WF-V d3-831&destination=Flyae Flyuae XK-V c3-396&destination=Flyae Flyuae WB-K d9-1202&destination=Flyae Flyuae EL-N d7-14&destination=Flyae Flyuae UJ-R e4-514&destination=Flyae Flyuae UP-R b23-43&destination=Flyae Flyuae CC-I c24-40&destination=Flyae Flyuae EG-L b26-22&destination=Flyae Flyuae VO-H d10-430&destination=Flyae Flyuae IE-B c29-536&destination=Flyae Flyuae SH-X c16-340&destination=Flyae Flyuae DR-D d12-620&destination=Flyae Flyuae LO-Z d13-60&destination=Flyae Flyuae ZW-I d10-242&destination=Flyae Flyuae RK-V d3-502&destination=Flyae Flyuae BG-O e6-746&destination=Teqia TA-A c29-31&destination=Flyae Flyuae FO-G d11-289&destination=Flyae Flyuae QN-T d3-339&destination=Flyae Flyuae II-B d13-39&destination=Flyae Flyuae JH-K d9-208&destination=Flyae Flyuae MI-A d1-1164&destination=Flyae Flyuae FP-Z d95&destination=Flyae Flyuae IX-S d4-1417&destination=Teqia EG-Z c28-63&destination=Ploi Aoscs NT-Q c18-892&destination=Flyae Flyuae XO-Z d441&destination=Flyae Flyuae AL-V d3-424&destination=Flyae Flyuae QJ-D b56-21&destination=Flyae Flyoo EB-U d4-108&destination=Ingobs UK-E d12-0&destination=Cheethai AC-B d1-1&destination=Cheethai OP-H b13-0&destination=Cheethai DZ-M b48-4&destination=Cheethai AK-W b45-0&destination=Cheethai RO-Z d47&destination=Cheethai RR-L c21-58&destination=Cheethai MD-Y c2-5&destination=Cheethai QY-R d4-7&destination=Phaa Breae KV-U b49-0&destination=Cheethai BA-Q c8-2&destination=Cheethai HF-O b36-0&destination=Cheethai UF-C c14-5&destination=Cheethai OP-H b13-0&destination=Cheethai XP-P d5-62&destination=Cheethai HF-O b36-0&destination=Cheethai ZO-A d30&destination=Cheethai XF-E d12-60&destination=Phaa Breae QZ-E d12-12&destination=Cheethai HN-L b49-2&destination=Cheethai XF-E d12-60&destination=Plio Scrua JR-V e2-6&destination=Cheethai DQ-F d11-39&destination=Cheethai UY-S e3-106&destination=Plio Scrua DG-M d8-0&destination=Cheethai QE-W b29-4&destination=Plio Scrua VR-W b47-0&destination=Cheethai LY-I c9-7&destination=Cheethai ZA-P b47-3&destination=Cheethai YX-F d12-1&destination=Cheethai RX-Z b43-1&destination=Cheethai YP-P d5-70&destination=Cheethai VA-F d11-100&destination=Cheethai AL-F c14-0&destination=Cheethai DH-C d13-18&destination=Cheethai DC-Z b15-0&destination=Cheethai PZ-O e6-12&destination=Cheethai AW-N d6-260&destination=Cheethai BN-A d14-29&destination=Cheethai RX-Z b43-1&destination=Cheethai RT-Q d5-21&destination=Cheethai JI-S d4-19&destination=Ploea Aowsy EH-Z c15-125&destination=Ploea Aowsy VJ-X d2-559&destination=Ploea Aowsy IM-U d3-299&destination=Ploea Aowsy KL-Y d8261&destination=Ploea Aowsy KZ-M d8-142&destination=Ploea Aowsy XL-Q b10-6&destination=Ploea Aowsy IG-J b14-2&destination=Ploea Aowsy JA-A d4651&destination=Ploea Aowsy ZP-P d5-6441&destination=Ploea Aowsy XO-D c1-14&destination=Ploea Aowsy HP-D d13-73&destination=Ploea Aowsy KO-G b56-12&destination=Ploea Aowsy BO-F d12-110&destination=Ploea Aowsy QP-E b55-26&destination=Ploea Aowsy MA-L d9-1&destination=Ploea Aowsy MO-F c12-74&destination=Ploea Aowsy EW-E d11-2575&destination=Ploea Aowsy KV-B c14-111&destination=Ploea Aowsy ZE-D b56-43&destination=Ploea Aowsy AR-R c19-141&destination=Ploea Aowsy HN-R d5-186&destination=Ploea Aowsy GI-F b16-8&destination=Ploea Aowsy YN-B b55-144&destination=Phaa Briae HW-N e6-86&destination=Ploea Aowsy QD-Y c28-9&destination=Ploea Aowsy AH-D b57-21&destination=Ploea Aowsy JT-G b43-5&destination=Ploea Aowsy EH-O b25-5&destination=Ploea Aowsy WA-N d7-343&destination=Ploea Aowsy PF-P c6-341&destination=Ploea Aowsy GW-N d6-3979&destination=Ploea Aowsy TM-Z c27-93&destination=Ploea Aowsy CT-G d11-258&destination=Ploea Aowsy AR-Z b28-54&destination=Ploea Aowsy CD-H d11-74&destination=Ploea Aowsy QQ-K b25-14&destination=Cheethai AA-A e281&destination=Ploea Aowsy YW-Q b36-16&destination=Ploea Aowsy JI-A d14-443&destination=Ploea Aowsy MS-N b6-318&loop=0

I noted that the latter one barely breaks the 5k limit for characters, if that is what is causing it.

I really hope i havent caused havoc to your servers in any way whilst figuring out this limit.

So for the request...

Would it be possible to implement a file upload for the destinations? csv, one destination per row, or that sort of thing?
Or is it perhaps already possible to feed in 6000 destinations to the api, just that i'm doing it wrong?

Again, thanks for the service :)
 
Hello Spansh, I want to thank you for the route-plotters you've made.
it is so nice to use your multi hop optimizations when going on long trips, as opposed to trying to eyeball what order would be optimal.

I have a question/request i guess.

I'm in the middle of making a huge (as of this moment) ~6000 stop route, since punching those in to your interface is kind of tedious, i've been feding it directly into the api instead.

But at about 142 stops, i seem to have hit a limitation of some sort.

I can send this through firefox,
PHP:
https://spansh.co.uk/api/tourist/route?range=70&source=Sol&destination=Flyae Flyoo DG-E d12-33&destination=Flyooe Flyoo ZK-O d6-0&destination=Flyooe Flyoo BG-N d7-9&destination=Flyae Flyoo YQ-C d8&destination=Ploi Aoscs RC-Z b27-291&destination=Ploi Aoscs NN-T e3-458&destination=Ploi Aoscs HY-H d10-453&destination=Ploi Aoscs AT-E b43-10&destination=Ploi Aoscs UO-X c2-8&destination=Plaa Aoscs IP-L b9-17&destination=Ploi Aoscs AV-Y f588&destination=Ploi Aoscs MC-B d1-11&destination=Ploi Aoscs IW-C d656&destination=Ploi Aoscs TD-E b1-1&destination=Ploi Aoscs CQ-V d3-285&destination=Ploi Aoscs MY-F b54-14&destination=Ploi Aoscs UW-E c11-1055&destination=Ploi Aoscs FS-A d1-110&destination=Ploi Aoscs MC-D d12-3154&destination=Flyae Flyuae CC-S d5-2497&destination=Flyae Flyuae QD-T e3-998&destination=Flyae Flyuae YS-Z b5-126&destination=Flyae Flyuae AG-C c1-633&destination=Flyae Flyuae DH-M d7-257&destination=Flyae Flyuae ZO-Z d689&destination=Flyae Flyuae KN-A d1-1529&destination=Flyae Flyuae ZN-I c26-1245&destination=Flyeia Flyi ZJ-P d6-578&destination=Flyae Flyuae DO-F d12-5557&destination=Flyae Flyuae KK-A d615&destination=Flyae Flyuae WF-V d3-831&destination=Flyae Flyuae XK-V c3-396&destination=Flyae Flyuae WB-K d9-1202&destination=Flyae Flyuae EL-N d7-14&destination=Flyae Flyuae UJ-R e4-514&destination=Flyae Flyuae UP-R b23-43&destination=Flyae Flyuae CC-I c24-40&destination=Flyae Flyuae EG-L b26-22&destination=Flyae Flyuae VO-H d10-430&destination=Flyae Flyuae IE-B c29-536&destination=Flyae Flyuae SH-X c16-340&destination=Flyae Flyuae DR-D d12-620&destination=Flyae Flyuae LO-Z d13-60&destination=Flyae Flyuae ZW-I d10-242&destination=Flyae Flyuae RK-V d3-502&destination=Flyae Flyuae BG-O e6-746&destination=Teqia TA-A c29-31&destination=Flyae Flyuae FO-G d11-289&destination=Flyae Flyuae QN-T d3-339&destination=Flyae Flyuae II-B d13-39&destination=Flyae Flyuae JH-K d9-208&destination=Flyae Flyuae MI-A d1-1164&destination=Flyae Flyuae FP-Z d95&destination=Flyae Flyuae IX-S d4-1417&destination=Teqia EG-Z c28-63&destination=Ploi Aoscs NT-Q c18-892&destination=Flyae Flyuae XO-Z d441&destination=Flyae Flyuae AL-V d3-424&destination=Flyae Flyuae QJ-D b56-21&destination=Flyae Flyoo EB-U d4-108&destination=Ingobs UK-E d12-0&destination=Cheethai AC-B d1-1&destination=Cheethai OP-H b13-0&destination=Cheethai DZ-M b48-4&destination=Cheethai AK-W b45-0&destination=Cheethai RO-Z d47&destination=Cheethai RR-L c21-58&destination=Cheethai MD-Y c2-5&destination=Cheethai QY-R d4-7&destination=Phaa Breae KV-U b49-0&destination=Cheethai BA-Q c8-2&destination=Cheethai HF-O b36-0&destination=Cheethai UF-C c14-5&destination=Cheethai OP-H b13-0&destination=Cheethai XP-P d5-62&destination=Cheethai HF-O b36-0&destination=Cheethai ZO-A d30&destination=Cheethai XF-E d12-60&destination=Phaa Breae QZ-E d12-12&destination=Cheethai HN-L b49-2&destination=Cheethai XF-E d12-60&destination=Plio Scrua JR-V e2-6&destination=Cheethai DQ-F d11-39&destination=Cheethai UY-S e3-106&destination=Plio Scrua DG-M d8-0&destination=Cheethai QE-W b29-4&destination=Plio Scrua VR-W b47-0&destination=Cheethai LY-I c9-7&destination=Cheethai ZA-P b47-3&destination=Cheethai YX-F d12-1&destination=Cheethai RX-Z b43-1&destination=Cheethai YP-P d5-70&destination=Cheethai VA-F d11-100&destination=Cheethai AL-F c14-0&destination=Cheethai DH-C d13-18&destination=Cheethai DC-Z b15-0&destination=Cheethai PZ-O e6-12&destination=Cheethai AW-N d6-260&destination=Cheethai BN-A d14-29&destination=Cheethai RX-Z b43-1&destination=Cheethai RT-Q d5-21&destination=Cheethai JI-S d4-19&destination=Ploea Aowsy EH-Z c15-125&destination=Ploea Aowsy VJ-X d2-559&destination=Ploea Aowsy IM-U d3-299&destination=Ploea Aowsy KL-Y d8261&destination=Ploea Aowsy KZ-M d8-142&destination=Ploea Aowsy XL-Q b10-6&destination=Ploea Aowsy IG-J b14-2&destination=Ploea Aowsy JA-A d4651&destination=Ploea Aowsy ZP-P d5-6441&destination=Ploea Aowsy XO-D c1-14&destination=Ploea Aowsy HP-D d13-73&destination=Ploea Aowsy KO-G b56-12&destination=Ploea Aowsy BO-F d12-110&destination=Ploea Aowsy QP-E b55-26&destination=Ploea Aowsy MA-L d9-1&destination=Ploea Aowsy MO-F c12-74&destination=Ploea Aowsy EW-E d11-2575&destination=Ploea Aowsy KV-B c14-111&destination=Ploea Aowsy ZE-D b56-43&destination=Ploea Aowsy AR-R c19-141&destination=Ploea Aowsy HN-R d5-186&destination=Ploea Aowsy GI-F b16-8&destination=Ploea Aowsy YN-B b55-144&destination=Phaa Briae HW-N e6-86&destination=Ploea Aowsy QD-Y c28-9&destination=Ploea Aowsy AH-D b57-21&destination=Ploea Aowsy JT-G b43-5&destination=Ploea Aowsy EH-O b25-5&destination=Ploea Aowsy WA-N d7-343&destination=Ploea Aowsy PF-P c6-341&destination=Ploea Aowsy GW-N d6-3979&destination=Ploea Aowsy TM-Z c27-93&destination=Ploea Aowsy CT-G d11-258&destination=Ploea Aowsy AR-Z b28-54&destination=Ploea Aowsy CD-H d11-74&destination=Ploea Aowsy QQ-K b25-14&destination=Cheethai AA-A e281&destination=Ploea Aowsy YW-Q b36-16&destination=Ploea Aowsy JI-A d14-443&loop=0
but not this
PHP:
https://spansh.co.uk/api/tourist/route?range=70&source=Sol&destination=Flyae Flyoo DG-E d12-33&destination=Flyooe Flyoo ZK-O d6-0&destination=Flyooe Flyoo BG-N d7-9&destination=Flyae Flyoo YQ-C d8&destination=Ploi Aoscs RC-Z b27-291&destination=Ploi Aoscs NN-T e3-458&destination=Ploi Aoscs HY-H d10-453&destination=Ploi Aoscs AT-E b43-10&destination=Ploi Aoscs UO-X c2-8&destination=Plaa Aoscs IP-L b9-17&destination=Ploi Aoscs AV-Y f588&destination=Ploi Aoscs MC-B d1-11&destination=Ploi Aoscs IW-C d656&destination=Ploi Aoscs TD-E b1-1&destination=Ploi Aoscs CQ-V d3-285&destination=Ploi Aoscs MY-F b54-14&destination=Ploi Aoscs UW-E c11-1055&destination=Ploi Aoscs FS-A d1-110&destination=Ploi Aoscs MC-D d12-3154&destination=Flyae Flyuae CC-S d5-2497&destination=Flyae Flyuae QD-T e3-998&destination=Flyae Flyuae YS-Z b5-126&destination=Flyae Flyuae AG-C c1-633&destination=Flyae Flyuae DH-M d7-257&destination=Flyae Flyuae ZO-Z d689&destination=Flyae Flyuae KN-A d1-1529&destination=Flyae Flyuae ZN-I c26-1245&destination=Flyeia Flyi ZJ-P d6-578&destination=Flyae Flyuae DO-F d12-5557&destination=Flyae Flyuae KK-A d615&destination=Flyae Flyuae WF-V d3-831&destination=Flyae Flyuae XK-V c3-396&destination=Flyae Flyuae WB-K d9-1202&destination=Flyae Flyuae EL-N d7-14&destination=Flyae Flyuae UJ-R e4-514&destination=Flyae Flyuae UP-R b23-43&destination=Flyae Flyuae CC-I c24-40&destination=Flyae Flyuae EG-L b26-22&destination=Flyae Flyuae VO-H d10-430&destination=Flyae Flyuae IE-B c29-536&destination=Flyae Flyuae SH-X c16-340&destination=Flyae Flyuae DR-D d12-620&destination=Flyae Flyuae LO-Z d13-60&destination=Flyae Flyuae ZW-I d10-242&destination=Flyae Flyuae RK-V d3-502&destination=Flyae Flyuae BG-O e6-746&destination=Teqia TA-A c29-31&destination=Flyae Flyuae FO-G d11-289&destination=Flyae Flyuae QN-T d3-339&destination=Flyae Flyuae II-B d13-39&destination=Flyae Flyuae JH-K d9-208&destination=Flyae Flyuae MI-A d1-1164&destination=Flyae Flyuae FP-Z d95&destination=Flyae Flyuae IX-S d4-1417&destination=Teqia EG-Z c28-63&destination=Ploi Aoscs NT-Q c18-892&destination=Flyae Flyuae XO-Z d441&destination=Flyae Flyuae AL-V d3-424&destination=Flyae Flyuae QJ-D b56-21&destination=Flyae Flyoo EB-U d4-108&destination=Ingobs UK-E d12-0&destination=Cheethai AC-B d1-1&destination=Cheethai OP-H b13-0&destination=Cheethai DZ-M b48-4&destination=Cheethai AK-W b45-0&destination=Cheethai RO-Z d47&destination=Cheethai RR-L c21-58&destination=Cheethai MD-Y c2-5&destination=Cheethai QY-R d4-7&destination=Phaa Breae KV-U b49-0&destination=Cheethai BA-Q c8-2&destination=Cheethai HF-O b36-0&destination=Cheethai UF-C c14-5&destination=Cheethai OP-H b13-0&destination=Cheethai XP-P d5-62&destination=Cheethai HF-O b36-0&destination=Cheethai ZO-A d30&destination=Cheethai XF-E d12-60&destination=Phaa Breae QZ-E d12-12&destination=Cheethai HN-L b49-2&destination=Cheethai XF-E d12-60&destination=Plio Scrua JR-V e2-6&destination=Cheethai DQ-F d11-39&destination=Cheethai UY-S e3-106&destination=Plio Scrua DG-M d8-0&destination=Cheethai QE-W b29-4&destination=Plio Scrua VR-W b47-0&destination=Cheethai LY-I c9-7&destination=Cheethai ZA-P b47-3&destination=Cheethai YX-F d12-1&destination=Cheethai RX-Z b43-1&destination=Cheethai YP-P d5-70&destination=Cheethai VA-F d11-100&destination=Cheethai AL-F c14-0&destination=Cheethai DH-C d13-18&destination=Cheethai DC-Z b15-0&destination=Cheethai PZ-O e6-12&destination=Cheethai AW-N d6-260&destination=Cheethai BN-A d14-29&destination=Cheethai RX-Z b43-1&destination=Cheethai RT-Q d5-21&destination=Cheethai JI-S d4-19&destination=Ploea Aowsy EH-Z c15-125&destination=Ploea Aowsy VJ-X d2-559&destination=Ploea Aowsy IM-U d3-299&destination=Ploea Aowsy KL-Y d8261&destination=Ploea Aowsy KZ-M d8-142&destination=Ploea Aowsy XL-Q b10-6&destination=Ploea Aowsy IG-J b14-2&destination=Ploea Aowsy JA-A d4651&destination=Ploea Aowsy ZP-P d5-6441&destination=Ploea Aowsy XO-D c1-14&destination=Ploea Aowsy HP-D d13-73&destination=Ploea Aowsy KO-G b56-12&destination=Ploea Aowsy BO-F d12-110&destination=Ploea Aowsy QP-E b55-26&destination=Ploea Aowsy MA-L d9-1&destination=Ploea Aowsy MO-F c12-74&destination=Ploea Aowsy EW-E d11-2575&destination=Ploea Aowsy KV-B c14-111&destination=Ploea Aowsy ZE-D b56-43&destination=Ploea Aowsy AR-R c19-141&destination=Ploea Aowsy HN-R d5-186&destination=Ploea Aowsy GI-F b16-8&destination=Ploea Aowsy YN-B b55-144&destination=Phaa Briae HW-N e6-86&destination=Ploea Aowsy QD-Y c28-9&destination=Ploea Aowsy AH-D b57-21&destination=Ploea Aowsy JT-G b43-5&destination=Ploea Aowsy EH-O b25-5&destination=Ploea Aowsy WA-N d7-343&destination=Ploea Aowsy PF-P c6-341&destination=Ploea Aowsy GW-N d6-3979&destination=Ploea Aowsy TM-Z c27-93&destination=Ploea Aowsy CT-G d11-258&destination=Ploea Aowsy AR-Z b28-54&destination=Ploea Aowsy CD-H d11-74&destination=Ploea Aowsy QQ-K b25-14&destination=Cheethai AA-A e281&destination=Ploea Aowsy YW-Q b36-16&destination=Ploea Aowsy JI-A d14-443&destination=Ploea Aowsy MS-N b6-318&loop=0

I noted that the latter one barely breaks the 5k limit for characters, if that is what is causing it.

I really hope i havent caused havoc to your servers in any way whilst figuring out this limit.

So for the request...

Would it be possible to implement a file upload for the destinations? csv, one destination per row, or that sort of thing?
Or is it perhaps already possible to feed in 6000 destinations to the api, just that i'm doing it wrong?

Again, thanks for the service :)
Try making it a form POST rather than a GET and serialising the params in the body.
 
Top Bottom