I'm looking for an open source GIS server or desktop package that supports as many file formats as possible, is fast, runs on Linux or Mac and can be controlled via an API.
Planning to do very basic editing such as intersects so I guess most GIS platforms will be able to do this.
Does anyone have any recommendations as to a suitable package?
This question has been converted to Community Wiki and wiki locked
because it is an example of a question that seeks a list of answers
and appears to be popular enough to protect it from closure. It
should be treated as a special case and should not be viewed as the
type of question that is encouraged on this, or any Stack Exchange
site, but if you wish to contribute more content to it then feel free
to do so by editing this answer.
http://freegis.org/ - the oldest and perhaps most comprehensive directory of free GIS software and projects.
This question has been converted to Community Wiki and wiki locked
because it is an example of a question that seeks a list of answers
and appears to be popular enough to protect it from closure. It
should be treated as a special case and should not be viewed as the
type of question that is encouraged on this, or any Stack Exchange
site, but if you wish to contribute more content to it then feel free
to do so by editing this answer.
Try routeXL I'm not sure how many nodes you can max out on though.
Here's an example of a 12 city output
To add destinations, find them in the search bar and press enter. click on the Address drop down to change/modify the addresses you just added
Click on find route for it to compute it
HEre's a screenshot of a run I did:
[Disclaimer - I am the author of the UI part of this software]
ODL Studio is an open source desktop application for planning vehicle routes - so it will solve your problem. It's free and we have people using it in many different countries throughout the world. Download from here http://www.opendoorlogistics.com/ or watch the tutorial video here https://www.youtube.com/watch?v=0DJdubVWX_A
It takes an Excel as input data which will help you. You can play around with the cost-per-km and cost-per-hour to have it automatically optimise for most efficient by time or mileage (given the size of your problem it will probably find the most optimal solution as well).
Sign up for an account and upload your excel. Pressing "update schedule" will give you the shortest route.
portatour is made for sales reps visiting up to 1000 addresses repeatedly, so it has many more features which are specific for field sales, consulting, and maintenance. For example, opening times or visit intervals.
The result route can be exported as iCal calendar.
There is a free trial
Here is a screenshot of a generated Route on an iPad:
Disclaimer: I work for portatour.
Check out Optimo Route - there is a free trial you can use. Import multiple addresses from MS Excel and easily plan optimal routes. You can also set things like service time (time you will spend at the location) and time windows (specific times you need to be at the location).
Routes can be exported to a GPS device (Garmin, Navigon, TomTom) or MS Excel.
Disclaimer: I work for Optimo Route.
Also take a look at Speedy Route - another optimal route planner website. You can bulk upload addresses, and then either print out the optimal route, or export the results to Excel via CSV.
Finding the most efficient route from a list of addresses sounds a lot like the Traveling Salesman Problem, one of the most studied problems in computer science. It's one thing to calculate a straight line distance but adding street routes makes this highly unlikely that you'll find an optimal distance.
I might have answered part of your problem on another page. This may not be useful but I'll include it anyway.
Best Answer
Here's a vote for Quantum GIS with GRASS plugin enabled as your desktop application. (QGIS is available on Windows, MacOS X and Linux). OGR/GDAL will take care of nearly any file format. Store all your data on PostgreSQL/ PostGIS and serve it out with Geoserver.
Link to QGIS API Documentation.