OptiMap version 4 is here

New user interface

Hold down shift while pressing reload to make sure the page fully reloads if OptiMap appears broken.

The first thing you’ll notice is a complete makeover of the user interface. The functionality has grown considerably since I first posted OptiMap in 2007, and the controls were scattered randomly around. Now, they are organized into neat little drawers on the left, in the order you are likely to be using them.

There is some new functionality as well. The ‘Edit Route’ section gives you the chance to re-order the trip after it has been computed. Have to visit one client first? No problem, drag to the top. You can also delete stops from the itinerary here.

OptiMap 4 also has a more powerful TSP solver routine. The new solver kicks in when there are more than 15 stops, and produces better and more robust solutions than the old engine. It is guaranteed to perform better than before, and in some hard cases I’ve tested, it improved the solutions by as much as 6-7%. That means that if you spent 8 hours on the road before, you now get home half an hour earlier.

Support for Garmin GPS units is now added as well. Support is experimental, since I only had access to one Garmin device, which did not support routes. I’m interested to hear whether this works on your device if you have a Garmin GPS.

There are some bug fixes as well: When pasting data from Excel spreadsheets into the bulk add box, the cell delimiters were lost. This is fixed. The print function used to show half a page of unnecessary white space at the bottom, thus it sometimes would print blank pages at the end. This is fixed so you won’t be wasting paper needlessly any more.

As a bonus, you may now access the service from a shorter address: www.optimap.net (the old address will continue to work, and the page will remain identical)

I hope you enjoy the update! Please post questions, feedback, bugs and suggestions here. I’m sure I broke something during the update…

202 Responses to “OptiMap version 4 is here”

  1. karl Says:

    Hi, quick question does optimap require a certain browser? ie 8 or 9? My problem is that my company computer i use has ie 7 installed and the map portion doesnt show up. Any thoughts would be great. Thanks.

  2. geir Says:

    I wasn’t aware of a browser restriction. Did OptiMap work before for you? I’ll check to see what I can find. I’ve tested on Chrome, Firefox and Safari, but IE isn’t available for macs, so I can’t easily test it.

  3. geir Says:

    I did some searching, and found a guy who had a problem similar to yours:

    “Do you have IE enhanced security turned on? We recently were scratching our heads over problem #1 until we added the following sites to IE’s list of not-restricted (e.g., trusted) sites:
    - http://*.google.com
    - http://*.googleapis.com
    - http://*.gstatic.com

    Maybe it helps?

  4. jacobcarlyle Says:

    Thanks Geir.

    I have been using your TSP Solver on my iPad and Garmin GPS while doing a trail delivery network in Brisbane Australia. V4 looks good, more stable, a little quicker and more robust. Safari on iPad runs out of memory at about 25-30 stops.

    Again Thanks.

    p.s. Look forward to the Garmin export.

  5. geir Says:

    Thanks for the report. I’ll see if there’s anywhere I can save some memory and I hope to have the Garmin code ready this weekend.

  6. geir Says:

    Garmin code is added, but it’s experimental. The device I tested on had no support for routes, so the route export feature is untested. There is an option to just export waypoints, which works on most units, but is a bit cumbersome to use.

  7. Gordo Says:

    The export to Google Maps is helpful thanks! If you could show the trip time between locations it would be very helpful! (now i currently export to Google maps to accomplish this)

  8. rickert van der vlies Says:

    Does anyone know a api that can convert the route data to other formats for other devices?

    @gebweb, do you code custom solutions for paying clients, i may be interested. Can you please contact me?

  9. Rooster Says:

    Love this program. However, the latitudes and longitudes when you export the “Toggle Raw Path Output” are often different than the latitudes and longitudes that are bulk entered. This makes it difficult to compare what was entered with the resulting output.

    Is there a way to make the longitude and latitude “Raw Path Output” data match what was bulk added?

    Or perhaps a “Calculate As Entered” functionality could be added so that the “Raw Path Output” can first be associated with the data that is bulk entered. The “Fastest Route” could then be calculated and compared to the revised latitudes and longitudes that the program uses.

  10. geir Says:


    I think adding labels to each lat, lng pair is more efficient than trying to match them with the original data. There is a way to do this, albeit a bit cumbersome, with the http interface and the name parameter. E.g http://www.optimap.net/?loc0=(60.0,10.0)&name0=home&loc1=(60.1,10.0)&name1=geocache1 . I’ll try to come up with a way to add labels to the user interface, but as always, user interface is my weakest side…


  11. David Says:

    A simple but useful output would just be a list of the ordered stop addresses without the driving directions. One additional column of output information would also be helpful: the position index from the bulk added input list.

  12. Vikram Sridharan Says:


    Really liked the new look and options. It would be really great to have the option to add label. I would think a three column setup of lat, long, label would be very user friendly.

    If it is difficult to split, you could add an option to label upload that would correspond to the lat long in the same sequence.

    From new stuff, the ability to give an input of number of vehicles available would be great. Not sure how complicated the model becomes. It is something that a lot of people planning multiple routes would need.

  13. Gonen Says:


    “Toggle Raw Path Output” :

    Your idea for adding labels to the original point – for easy match of the new ordered points with the originals is GREAT !

    Waiting for this is well !!! (any idea when to expect this to happen ?)

    could you please just spit a sample of the new input http request and its raw output so we can prepare our code ?

    Many thanks for a great site !!

  14. geir Says:

    Hi Gonen,

    I’ve had little spare time the last few weeks, and will be busy until late March, but the http request params will be

    label0=your label&label1=…

    in addition to the current params. The output is likely to be of the form


    Hope that helps :)

  15. Gonen Says:

    1 – Super !
    Will solve lot of problems for me and others and will make it very easy to understand the new route.

    2 – Just would like to remind you about new routing option that we discussed already.
    Currently we have A-Z and Round trip.
    I named this new suggested option – “Tourist walking tour”

    This option has a starting point (e.g – the hotel where he sleeps) and more points the tourist would like to visit (e.g – museums)
    This option does not have ending point.

    Why ? because when a tourist comes to town, he wants to walk through several points of interest in the shortest way. He does not care where will be the last point (As he plans to take a taxi back to the hotel…)

    Is it complicated ?

    3 – Please note that viewing the route on Google Maps, has the 25 points limit…
    Great site !!!


  16. Murat Says:

    Hi Geir,

    Great website!!!! I have a question, on the export function, would it be possible to export the route segments? Currenttly it only exports the way points coordinates. Would it be possible to export the total line segment coordinates?
    Let me know if this is possible.
    I appreciate your time,


  17. Murat Says:

    Hi Geir,

    Would it be possible to export the route to KML?

  18. Mike Says:

    Hey have you tried or is it possible to get a QR Code output from this?

  19. Scott Larson Says:

    Great functionality!

    I believe I have found a bug, though. When I try to view in Google Maps, only the first 4/31 destinations is displayed.

    Is there a way to export the list of addresses?

    Below is the raw path output I am using:

    (41.84434, -87.71935000000002)
    (41.84617, -87.71971000000002)
    (41.85087, -87.72543999999999)
    (41.87481, -87.74504999999999)
    (41.90419000000001, -87.72145999999998)
    (41.90656000000001, -87.72153000000003)
    (41.89190000000001, -87.70641999999998)
    (41.8804, -87.68639000000002)
    (41.89081000000001, -87.67689000000001)
    (41.89686, -87.67462)
    (41.90141000000001, -87.67474000000004)
    (41.90328, -87.67236000000003)
    (41.91775000000001, -87.67790000000002)
    (41.91935, -87.68016999999998)
    (41.91761, -87.68499000000003)
    (41.93209, -87.69987000000003)
    (41.93213, -87.69289000000003)
    (41.93952, -87.68319000000002)
    (41.93977, -87.66380000000004)
    (41.94251000000001, -87.66389000000004)
    (41.94258000000001, -87.65904)
    (41.92171, -87.65607)
    (41.87811000000001, -87.62979000000001)
    (41.87811000000001, -87.62979000000001)
    (41.85285, -87.6465)
    (41.85255, -87.64648)
    (41.83028, -87.68531999999999)
    (41.85672, -87.67858999999999)
    (41.85382000000001, -87.69056999999998)
    (41.84999000000001, -87.69538)
    (41.84626, -87.70137999999997)
    (41.84434, -87.71935000000002)

  20. geir Says:

    Google Maps only handles up to 25 addresses, so that’s probably why they won’t display in Google Maps.

  21. Scott Larson Says:

    Also, it appears to not want to calculate a route if I try add the above raw output into the bulk address area.

  22. Gonen Says:

    Hi Geir

    Any news about the:


    thanks for any update

  23. Bram Says:


    Labels in the toggle raw path output, would be a nice update.
    Now it’s almost impossible to use this ordered output, because it slightly changed the coordinats…

    thanks for any update
    I’am waithing for the next version

  24. geir Says:

    It’s been quite a busy time for me, but I’ll try to add labels in the raw output very soon…

  25. Gonen Says:

    We wait – Many thanks !!!!!

  26. geir Says:

    @Gonen, I finally got around to doing this. Sorry for the long wait and thank you for your patience!

    There is now a new button under export which shows the raw path including labels when you press it.

    To add labels, use the HTTP GET parameter called name, e.g: http://gebweb.net/optimap/index.php?name0=Start&loc0=(60,10)&name1=First%20stop&loc1=(59.5,9.8)&name2=2nd%20stop&loc2=Askroken%2051

  27. Gonen Says:

    Works perfect !!!!! Bravo !!!

  28. Ad Says:

    wen i try bulk add by adress , he will not work.
    N 51° 19.513 E 005° 34.912 
    N 51° 19.491 E 005° 38.323 
    N 51° 19.897 E 005° 36.315
    N 51° 19.239 E 005° 33.969 
    N 51° 17.712 E 005° 30.942
    N 51° 18.337 E 005° 31.993 
    N 51° 18.505 E 005° 32.369 
    he says :failed to geocode adress: N etc.
    Reason: no result was found for this geocoder request.
    Before the update there was no problem.

  29. Geir Says:


    Your list of destinations worked perfectly for me in Google Chrome. Maybe there was some temporary problem?

  30. ad Says:

    I copy paste it from an excell sheet and sometimes he will not accept the destination. when i delete the destination and i fill the excell sheet again with the same destination then it is correct.!!
    I use it for geocaching.

  31. Chad Says:

    I am trying to get address for around 50 locations but the system seems to freeze up and not give me any results

  32. Snail Says:

    Hello, I noticed a little bug: if there is an apostrophe in one of the place-names, the “View in Google Maps” button doesn’t work (I think the underlying JS interprets the apostrophe as an end-of-string marker).

    Thank you for your great effort and keep up the good job!

  33. geir Says:

    I fixed the bug with apostrophes now (by simply ignoring them).

  34. John Says:

    Excellent tool! Will be donating for sure. I like the custom labels and the website integration which I am currently using. Although I would like to have this run strictly from my own site but I’m finding the code is confusing and it won’t work for me.

  35. Steve C Says:

    About missing waypoints in Google Maps: is there a way to modify the Export function, so that the comma following State is not exported to GMaps? As it is now each comma must be deleted by hand to avoid problems.

    Great Program!

  36. Steve C Says:

    This might also resolve the lat/long variations mentioned earlier.

  37. Francesco Says:

    Excellent tool also for me.
    I would like to know if there is a way to load on your web site a text string so you can directly insert the 10 addresses and give inivio “Calculate Fastest Roundtrip”.
    Example string: “http://gebweb.net/optimap/index.php? …”

  38. Jeremy N Says:

    Great tool for a service technician. I sincerely thank you and promise my donation is coming.
    2 suggestions

    1) Great job on the export to garmin & tom tom… Is there an export to Android? I tried using the “Chrome to Phone” app but to no avail.

    2) I’ve set my book mark to the correct map possition and zoom, but is there a way to have the start and end point? (Just realized how lazy I am to not have to take 4 seconds to type in my address) Take it as a compliment, GebWeb is near perfection.

  39. Dirk van Rennes Says:

    New tool for me. Friend asked me if I could find out how it works for geocaching. Copied the coordinates from geocaching to Optimap.
    Calculated the roudn trip and exported to Garmin 450 Oregon without any problems. Great and thanks!!

  40. geir Says:

    @Dirk, Happy geocaching then! Let me know how it performs outdoors on that device.

  41. rlong Says:

    Is there any way that we can plot more than 100 addresses at a time?

  42. Kevin Says:

    I too love this tool. I was using under GMaps v2 and am trying to migrate it to GMaps v3 using Optimap. It works perfectly, however for some reason the path that appeared in blue is not there. I just see my numbered icons on the map but no path drawn showing the route. Is there a setting to turn this off or on?

  43. geir Says:


    It’s a bug in Google Maps API 3.9. You have to force it to use 3.8 (see source of gebweb.net/optimap) for how to do this.

  44. geir Says:


    Sorry, no way to plot more than 100 addresses right now. Don’t have the icons, and would take a really long time to solve. If you only need to plot, then I am sure there are many maps apps that will do that.

  45. Kevin Says:


    Awesome that worked great! One more question…I have numbered icons on the map…#1 is red, rest are green.

    But the directions show #1 as red and rest blue. I don’t have blue specified in the js. How to correct this??

  46. johnny_q Says:

    Great tool indeed! Many thanks guys.

    One question though: how would it be possible to change the 1,2,3 pinpoints with other, more intelligible labels? (- such Start, 2nd, …Finish or maybe street_name or other)
    Thanks and regards,

  47. johnny_q Says:

    update: I’m trying to embed optimap as anIframe in my application – so not doing programming, but just calling the url with the address parameters. So is there a parameter to pass with other pinpoint name? – &label and &name not helping for changing pinpoints, but just for the directions.

  48. geir Says:

    @johnyy_q No, there is currently no option to change the pinpoint icon. Do you mean the icon or the popup when you click on a pinpoint icon?

  49. johnny_q Says:

    Hi Geir,
    I would like to change the pinpoint icon. But no problem if that’s not possible yet.
    However, how could I change/show the popup when clicking the pinpoint – currently the address is showing in a popup if I click the pinpoint.
    Thank you.

  50. Kristi-Anna Says:

    I’m trying OptiMap for the first time. I’m inputting 29 addresses int othe bulk loader. I click “fastest route” and then it stalls out compeltely. I mean, totally does not give me anything, even after 30 mins has passed! I heard great things, but am not experiencing them :(

  51. Oliver Says:

    Hi Geir,

    first of all thanks for your nice work its so far the only solution i found that comes close to my needs!

    I am currently in the middle to understand and refactor the salesman problem for my very own needs. I will get the problem of having more waypoints then avrg and rly want to minimize the API usage.

    So i was thinking about let the client fetch the Distance Matrix instead of the Route from Google and then have to calculate the route on my server.

    Is there a flaw in my thinking or why did you prefer getting the route data from Google instead of the distance.



  52. Geir Says:

    @Oliver your thinking is correct. However, the code for fetching distances was written before Google API had a distance matrix call. If you replace the code, the only thing you need to be aware of is that you have to make a few more calls to Google after you have computed the best permutation to get the full route. I would be very interested in including this code into the Open Source project if you succeed in refactoring it.

  53. Clare Says:

    Hi Geir,
    Optimap is great! Just one question: Would it be possible for there to be either an export of the postcodes in their final (optimized) order or for the optimised postcode list to appear in order on screen? This would be a big help! At the moment, once the tripped has been calculated, you can’t even click on the numbers on the map to find out which is which postcode. I suspect a lot of people will use this tool to order their itinerary and won’t really need the extensive list of directions; just the order of the waypoints.

  54. geir Says:

    @Clare, There’s a button called “Raw path with labels” inside the “Export” drawer on the left hand side after the optimized route has been computed. Does it do what you want?

  55. Clare Says:

    Not quite. If I enter 30 addresses in no particular order and ask for the route to be calculated in an A-Z trip, it would be really useful to be able to export a simple list of the addresses numbered 1-30 in the optimized order. If I’m using this tool to plan a delivery route, for example, I need to know which address corresponds with each stop. So something like the “Raw path with labels” but with the postcode or address entered against each stop.
    Does that make sense? Thanks for replying!

  56. geir Says:

    @Clare, I think I know what you mean now. Can you refresh the page and see if “Optimal address order” makes your day easier?

  57. Clare Says:

    @Geir That is exactly it! Thanks so much for adding it. It will make life a lot easier for me (and, I think, others).

  58. Kevin Says:

    I am feeding addresses to a page…when I only have 1 address i get this error:

    TypeError: legs[bestPath[i - 1]] is undefined

    Any way to allow for only 1 address on a map?

  59. Steve C. Says:

    Hi Geir
    Nice work !!
    Think this is good bit of programing, is it open source as I would like to make a couple of changes like map bigger on my screen,

    I can confirm it works fine on IE 9 on windows platform,
    and the garmin export works fine on the garmin nuvi 1490T model
    which means it will work on all Nuvi models.


  60. Mike Says:

    Trying to map a round trip to all 48 state capitals in the US from a starting location and it times out every time using both IE9 and Chrome 21. I’m adding the following destinations (first destination home address withheld).

    600 Dexter Ave Montgomery, AL 36130
    1700 W Washington St Phoenix, AZ 85007
    203 State Capitol Little Rock, AR 72201
    1400 Tenth St Sacramento, CA 95814
    200 E Colfax Ave, Denver, CO 80203
    210 Capitol Ave Hartford, CT 06106
    411 Legislative Ave Dover, DE 19901
    400 S Monroe St, Tallahassee, FL 32399
    206 Washington Street Atlanta, GA 30334
    700 West Jefferson St Boise, ID 83702
    500 S 2nd St Springfield, IL 62701
    100 N Senate Ave, Indianapolis, IN 46204
    1007 E Grand Ave, Des Moines, IA 50319
    906 SW Jackson St Topeka, KS 66612
    700 Capitol Ave Frankfort, KY 40601
    900 N 3rd St Baton Rouge, LA 70802
    210 State St. Augusta, ME 04330
    91 State Circle Annapolis, MD 21401
    24 Beacon St # 458 Boston, MA 02133
    110 NCapitol Ave. Lansing, MI 48933
    75 Rev. Dr. Martin Luther King Jr. Blvd, St Paul, MN 55155
    400 High St Jackson, MS 39201
    201 W High St, Jefferson City, MO 65101
    1300 E 6th Ave, Helena, Mt 59601
    1445 K St, Lincoln, NE 68508
    101 North Carson St, Carson City, NV 89701
    20 Park St, Concord NH 03301
    125 W State St, Trenton, NJ 08608
    491 Old Santa Fe Trail, Santa Fe, NM 87501
    26 Eagle St, Albany, NY 12207
    1 E Edenton St, Raleigh, NC 2760
    600 East Boulevard Avenue, Bismarck, ND 58501
    36 E Broad St. Columbus, OH 43215
    2300 N Lincoln Blvd, Oklahoma City, OK 73105
    900 Court St NE, Salem, OR 97301
    400 Commonwealth Ave, Harrisburg, PA 17101
    146 Smith St. Providence, RI 02908
    1200 Gervais St Columbia, SC 29201
    500 E Capitol Ave Pierre, SD 57501
    600 Charlotte Avenue Nashville, TN 37243
    112 E 11th St Austin, TX 78701
    E 300 N, Salt Lake City, Salt Lake, Utah 84103
    115 State Street Montpelier, VT 05602
    1000 Bank St Richmond, VA 23219
    416 Sid Snyder Avenue SW Olympia, WA 98504
    1900 Washington St Charleston, WV 25305
    2 E Main St, Madison, WI 53702
    200 W 24th St Cheyenne, WY 82001

    Any assistance would be greatly appreciated. Thank you.

  61. Kevin Says:

    Any way I can feed just 1 address without getting an error?

  62. Henk Says:

    Awesome job dude!!

  63. Forrest Ward Says:


    I input the following in bulk:
    (40.706544, -74.01285200000001)
    (40.709782, -74.00971400000003)
    (40.722248, -73.997188)
    (40.708792, -74.005267)

    And I get the following out:
    (40.70648000000001, -74.01273000000003)
    (40.70967, -74.00980000000004)
    (40.72224000000001, -73.99716999999998)
    (40.70884, -74.00522000000001)

    Why does the output latlng(s) differ from what was input? I really need a solution for this problem. They should be the same since you are not geocoding anything unless the input is an address.

    Please advise.


  64. Steven Marx Says:

    Thanks for this great tool. I got it to work quickly for about 20 addresses but now it seems stuck on 75, all in my small city. How long should I expect it to take to calculate this number and up to 100?

  65. Kevin Says:


    Since its javascript doing the calculation it is dependent on your computer’s resources. The more available memory the better. I have an app that uses this script and have tried sticking to around 24 max as memory/load times was one consideration. Hope this helps.

  66. Renz Says:

    Hi Geir! I have some problems with your program, how come it does not recognize the alleys and small roads? Kindly check the shortest path of these addresses.



    same thing happens to google earth and some other online based router that I’ve used before, any solutions?

  67. Russell Roy Says:

    I’m doing the civic-minded, American thing and volunteering to do canvassing in this year’s Presidential race: 40 households on a Sat afternoon in the hot sun with no guidance as to how to traverse -just a Google map print out w/ a bunch of dots and addresses. Good luck wondering how many extra miles you walked.

    Being a lazy engineer I *knew* there had to be some smart/nice guy out there who did some sort of shortest path whosey whats that would solve my problem. Bravo! Optimap is da bomb! It produced what looks to be a great navigation with my 40 households first time out.

    Now I gotta make this work for all my fellow canvassers and not just me: in short, how do I automate to do dozens of routes week in and week out? Is there any sort of programmatic interface to Optimap? I know I can use the somewhat inelegant browser drivers (Selenium et.al) but I was hoping for a cleaner solution. Also: am I going to be running afoul of any Google Maps limitation on number of hits if I’m doing lots of routes (each of 40 destinations tops)?

    Any advice is much appreciated and thank you again for your hard work in providing such a good service.

    Best regards,


  68. Stephan_Germany Says:

    The tool works very well.
    Is it possible to insert an additional rubric?
    It would be helpful if you could add a comment or name to the stations.
    It would be nice, if you could use a column in Excel for this.
    Like: zip code, city, address, comment/name

    Thanks and greetings from Germany

    PS: It works with my TomTom XL-S IQ Routes

  69. peter Says:

    Hi Geir,

    Great tool, really use it a lot and save a lot of time.
    3 questions

    - Is it possibly to ad the value of &name#= from the url variables to the pinpoints.
    like “0-destinationname”

    - Is it possible to add a time table. with time between points and total driving time:
    something like:

    #-name (time between) – (total time)
    2-destination 1 – (1h,23min) – (1h,23min)
    3-destination 2 – (0h,18min) – (1h,41min)
    1-Start – (1h,25min) – (3h,06min)

    And Id would be great if I could add a stop time for each point where you stop.
    Most of the time I lose 15 minutes add every stop, it would be great if I could add something like &stoptime=15min in the url variable.

    - Maybe a option for max speed, when driving with a truck I have a max speed of 90, so total trip time is not correct.
    As far as I know google maps does not have a max speed option, so that will be difficult.

  70. peter Says:

    or by question 1 maybe when you click on the pinpoint to see the &name# value in a label.

  71. Eric Johnsa Says:

    Your website ROCKS. IT WORKS. YES! Woot woot! I’m SO happy with the time this has saved me. And YES, the export function to my Garmin works PERFECTLY. Nice job.

  72. Quintinme Says:

    What’s up dear, me plus my mother are as well watch funny videos however after I finished my homework

  73. Jauchart Says:

    I can’t export. When I click on the “Export” button, a blank space appears underneath it, but that’s it.

  74. Geir Says:

    @Jauchart: Did you click “calculate fastest roundtrip” before trying to export?

  75. Rosemary Says:

    I want to export the route gpx file and I thought that I would be able to copy and paste the info into a csv file and it’s pasting as one line. Can you please advise how to save the file on my computer?

  76. geir Says:


    I think the best way to get the route as a gpx file is to select the “Export” drawer, select “Send to Garmin”, then right-click the link called “Download GPX route file” and use save link as file.

  77. jagsilva Says:

    Great tool that you have…
    In my site I have a map with 1365 markers (clients) and I use google maps to calc the route between some of the points. But I can’t use more than 10…

    I would like to use your js but I dont know where to start. I try the example code but nothing happens. Can someone help me?


  78. Mike Says:

    I’m still experiencing issues and unable to get the route for the 48 state capitals (addresses listed above). I switched to the Opera browser as well to no avail. I’m running Windows 7 64 bit on a computer with 16G of ram. 7.5 out of 7.9 windows user experience rating. it’s a fast computer with plenty of resources, yet it still fails to calculate the round trip route to the 48 state capitals.

    Any suggestions?

  79. geir Says:

    @Mike, I’m seeing the same thing here. I had no trouble computing a 100 destination roundtrip in New York, but I’m only able to get 2/3 of the way with the state capitals. I think that the issue is the long distance between these, which makes each leg consume much more memory, which is making the browser crash in the end.

    So unfortunately, I don’t have a resolution for you :(

  80. WES Says:

    My route transferred to my Garmin Nuvi 2595 LM just fine and I was very happy that it did. It seemed like it took a few attempts to do it but finally the upload button appeared and it loaded great.
    Thank you,

  81. Eric Says:

    Hello, I am trying to add about 30 addresses to map using a link, but the application freezes after 12 points are added. I have tried with different addresses and same result. Here is a sample link, any help would be appreciated. http://optimap.net/?loc0=400%20E%20HOWRY%20AVE%2032724&loc1=2678%20CORBY%20DR%2032763&loc2=2678%20CORBY%20DR%2032763&loc3=3750%20CORGAN%20RD32724&loc4=10%20JEANETTE%20DR32720&loc5=1101%20EVERGREEN%20PL32720&loc6=370%20CONNECTICUT%20AVE32744&loc7=373%20SHADY%20LN32763&loc8=123%20E%20HOLLY%20DR32763&loc9=2500%20N%20VOLUSIA%20AVE%2032763&loc10=811%20UPPER%20CAPE%20RD%2032763&loc11=1500%20EAST%20PKWY32724&loc12=120%20%20W%20NEW%20YORK%20AVE32720&loc13=505%20SANDALE%20CT32724&loc14=120%20E%20VOLUSIA%20AVE32724&loc15=2010%202ND%20AVE32724&loc16=318%20S%20OSCEOLA%20ST32724&loc17=416%20CORTEZ%20AVE32130&loc18=841%20W%20BERESFORD%20AVE32720&loc19=950%20S%20WOODLAND%20BLVD%2032720&loc20=986%20COUNTRY%20CLUB%20PARK32724&loc21=2285%20N%20KEPLER%20RD32724&loc22=502%20HARRISON%20PLACE%20DR%2032723&loc23=504%20HARRISON%20PLACE%20DR%2032724

  82. geir Says:

    Seems like there is an extra space in loc12= that is causing the 13th address not to geocode. For some reason, 120 W NEW YORK AVE32720 does not work, but 120 W NEW YORK AVE32720 works (notice the extra space between 120 and W).

    There definitely should be a human-readable error message for this, but time is always short :/

  83. Eric Says:

    Thank you for the prompt response, always the little things. Now trying to use this on an ipad seems impossible to reorder stops because dragging doesn’t work. Is there a touch/mobile enhanced version?

  84. geir Says:

    No, the webpage is unfortunately very mobile un-friendly. I don’t have much experience in user interfaces, so that’s the hardest part for me to get right. If someone with UI exp would come forward and work with me, I’d love to make a better mobile UI!

  85. wayne Says:

    Dear geir:
    I currently implement my own project and using your code to modified. May i ask where you get the icon after point on the map?after enter the address on the address field. Because after i click”calculate fastest round trip”, all work well, but din’t have the label on the map.

  86. PokerFan Says:

    Great tool!

    Garmin GPS 76CS export tests results.

    Route and Waypoints exports reported successful but the waypoints export was not complete; there are only 3 waypoints (out of the 14 addresses) in the unit. (They were the first address and last plus one other.) The route in the unit contains 14 via points so it appears to be correct.

    The GPX file exports of both the route and waypoints results in gpx strings. (Maybe that’s what’s supposed to happen but I expected a File/Save dialog box.) To see if the were valid strings I pasted them in a .gpx file and tried to open them with Garmin’s Mapsource program. Neither would open; the program reported they were not a valid file format. I imported the route to Mapsource from the GPS unit then exported the route to a GPX file and compared it with your gpx string. The most obvious difference is your escape character ‘\’ is being written to the gpx string. Here’s your a snippet of your export for the route point: . Here’s a snippet of the same route point from the export: . (I’m no GPX expert; maybe those ‘\’ are acceptable and there is some other problem.) Shoot me an email if you want clarification or additional testing. Thanks.

  87. peter Says:

    he there is no blue line anymore on http://www.gebweb.net/optimap/

    use firefox (16.02) or IE (9)

  88. geir Says:

    @peter I noticed it too and will look into it once I have time. There was a big Google Maps API update yesterday. The other thing they changed is how many requests you are allowed to make per second. I just updated the code to get around that limit, but it does make the route computation slower.

  89. peter Says:

    Slower is (most of the time) no problem.
    But some colored lines would be nice

  90. peter Says:

    Yeah, the blue line is back :-)

  91. sharath Says:

    hey the blue line is still not coming can u just tell me wat all changes have been done

  92. Geir Says:

    @sharath: Try holding shift while clicking refresh to make sure you get the latest version.

  93. sharath Says:

    hi i have been using your code for one of my application so should i have to change the entire file and check the same,should i have to change anything in BpTspSolver.js or can u just tell me wat all changes has to be done to get the blue line

  94. sharath Says:

    @geir thanks geir got it, the blue lines are back ,is there a possibility to change the color of the line

  95. James Says:

    Uploading the route to a Garmin 62SC seems to work. However, when I try to upload waypoints, it says it was successful uploading the route. Looking at the GPS, only routes are getting loaded, no waypoints.

  96. Marcin Says:

    Are you going to publish an REST API for optimap? I would like to gathering results (optimal numeric order) to desktop application. I can create request but I have problem with decode reponse. Any help will be very much appreciated.


  97. Shawn Says:

    Here is a list of addresses i am trying to input. most of them default to an incorrect location.

    2576 BAYVIEW Street , white rock bc
    2854 BAYVIEW Street , white rock bc
    12691 BECKETT Road , white rock bc
    12757 BECKETT Road , white rock bc
    12791 BECKETT Road , white rock bc
    2076A BOWLER Drive , white rock bc
    2250 CHRISTOPHERSON Road , white rock bc
    2519 CRESCENT Drive , white rock bc
    2678 CRESCENT Drive , white rock bc
    2631 DOGWOOD Drive , white rock bc
    12281 GARDINER Street , white rock bc
    12227 GILLEY Street , white rock bc
    2855 GORDON Avenue , white rock bc
    2108 INDIAN FORT Drive , white rock bc
    2118 INDIAN FORT Drive , white rock bc
    1828 LILAC Drive , white rock bc
    2603 MAPLE Street , white rock bc
    15805 MCBETH Road , white rock bc
    2832 MCBRIDE Avenue , white rock bc
    2843 MCBRIDE Avenue , white rock bc
    2970 MCBRIDE Avenue , white rock bc
    3033 MCBRIDE Avenue , white rock bc
    2711 MCKENZIE Avenue , white rock bc
    1752 OCEAN PARK Road , white rock bc
    1948 OCEAN PARK Road , white rock bc
    1992 OCEAN PARK Road , white rock bc
    2824 O’HARA Lane , white rock bc
    2904 O’HARA Lane , white rock bc
    3050 O’HARA Lane , white rock bc
    12375 SEACREST Drive , white rock bc
    12319 SULLIVAN Street , white rock bc

  98. geir Says:

    @Shawn, this seems to be a geocoding problem in Google Maps in general, since it is unable to find those addresses on maps.google.com as well. There’s not much I can do about that, unfortunately. The only thing is perhaps to not show default location if the specific address is not found.

  99. Martin Says:

    Hy Shawn, i had all your adresses in optimap, just input it without ” , white rock bc”. But calculating takes too long.

    Hy Geir, what code is inside tomtom.php please?.
    Would you share that?
    tnx – Martin

  100. Martin Says:

    Thought sometimes is the fastest way not the best way.
    take these 3 Points.
    (53.37552, 10.229800000000068)
    (53.55806000000001, 10.667529999999942)
    (53.26367, 10.576090000000022)
    Trip duration: 1 hrs 49 min
    Trip length: 119 km (74.4 miles)

    Shortest way is
    Trip duration: 1 hrs 55 min
    Trip length: 92.1 KM

    so i don´t think that i would drive 27KM more for about 6 minutes difference.

    So maybe overlay it all with the “shortest a-z trip” or “shortest roundtrip” ?

  101. Joe Says:

    I’m using your service to help our boy scout troop plot the routes to pickup old christmas trees. is there something wrong right now because I can’t export or print. in the past when i tried this i could.

  102. Geir Says:

    That’s strange, I can both print and export. Which export option are you trying to use? Which browser are you using?

  103. Gido Says:

    Hi Geir,

    I was wondering if it is possible to export a list with the following data:
    In the optimized order
    - adress
    - traval time

    On the site itself it only gives the totall travel time. For my job i would like to use the traveltimes between the locations.
    Also, i plan routes for deliveries, and we use trucks to deliver. Because of that the traveltime from google is never correct. For me if i multiply the total traveling time with 1,35 i get the right average. Or either
    0-10 minutes = +3 minutes
    10-30 minutes = +5 minutes
    30-40 minutes = +10 minutes
    40+ minutes = +15 minutes
    (i rarely have more then 60 minutes between these.)
    I understand if the second part is maybe a bit overkill for you, but i would really appreciate the time between locations in a list.


  104. Rob Says:

    This solution is awesome and does a great job optimizing routes! Nice job with the site. One enhancement I would like to see (as Martin points out) would be the option for the “shortest” route. With the price of fuel it would be nice to know how many extra miles are being used vs the time you are saving. Also how can I donate directly tomthis cause w/o using flattr?

  105. Pete Says:

    Can you add a checkbox and another if statement in function directions such that you can choose Bicycling?

  106. geir Says:


    Bicycling added :-)


    I could add an option to calculate the shortest route, but in reality it would not be the shortest route, because Google returns the fastest route between each pair of destinations. If I take the ordering of such fastest routes that give the shortest overall trip, it still would not be the shortest possible trip, and calling it the shortest trip would be a bit misleading.

    A donation via PayPal to geir.engdahl@gmail.com is always appreciated. I really like the idea of Flattr, though, and I think there are many sites out there which deserve to get paid a little for their content.

  107. shawn Says:

    how are bulk addresses entered? thanks

  108. Jost Says:


    I very much like OptiMap and use it for planning a route of normally 8-9 appointments on one day. Although times may differ in practice, I have to inform several people of my estimated arrival time. For this it would be fantastic, if OptiMap would not only give the total travelling time, but also the travelling time between two locations. Would this be realistic to implement?

    Thanks a lot!

  109. peter Says:

    @ jost,

    Same for me!!
    a option like that will be great.
    also a option to calculate a “Stop Time” for each stop to the total time would be nice.


  110. Steve Says:

    It has been working fine, but this time I’m getting this message when I try to export.
    Fatal Error: File Path: C:\DOCUME~1\steve\LOCALS~1\Temp\npGarmin\tmpD1.tmp, line: 1, char: 5102 Message: expected entity name for reference

  111. Steve Says:

    I found the problem. I was loading the bulk addresses and one of them had an &, as in 604 & half.

  112. PhillT Says:

    What a great site Geir!! Fantastic for travellers.

    I have found that GPS devices are not a lot of use for my requirements. (and there are tens if not hundreds of thousands like me)

    The problem is that a GPS offers the choices of avoiding Toll Roads, Un-paved roads, routes with ferries, Car Pool lanes etc, but none seem to offer what we need, which is the shortest route, BUT, keeping to major roads, (avoiding minor roads)
    Choosing the Shortest Route often takes us on back roads which depart a Highway, then re-join the same highway again a bit further on just to save a hundred meters of so, which is no use for someone towing a caravan, or driving a 30 foot motorhome.
    Choosing the Fastest Route usually takes a completely different path which we do not want either.

    What seems to be un-achievable is to plot a route that we want, on a site like yours, and then upload it “as a route” to the GPS, rather than as a series of positions, which the GPS then calculates the route for.

    I see that on your Route Options you have a choice to Avoid Highways, but no choice to “Keep to Highways”, or “Avoid Minor Roads”, which is what all caravaners and motorhome drivers need.

    I know there is no point in trying to get GPS manufacturers to do anything about it, so we are dumping our GPS and mapping our routes on Optimaps and taking the Laptop with us, so it would be a great help to us and the many thousand of fellow travellers if we could plot “Shortest Routes on Major Roads”


  113. Jan Drieghe Says:

    Dear Sir,
    I am using optimat to plot best routes for picking up children and bring them to school and back home with several small schoolbusses. I am not a programmer. I use Excel to bulk add addresses. Your site gives me a good estimate of the best routes and what bus i should add a child to.
    I would like to thank you for your work!


  114. Syed Ahmed Says:


    Please please add the option to avoid tolls. You currently only have the option to avoid highways. You can see there is a valuable difference.


  115. Leo Says:

    Hi there,

    just wondering is it possible for OptiMap to resolve later appended lat lng/address without have to reslove the route from first point?

    for example I have added 26 points in the map and got the fastest A-Z trip result, I then added 27th point and and ask for the fastest A-Z again and it seems like optimap was requesting all the routes again from google?


  116. geir Says:

    Hi Leo,

    It is possible, but requires a bit of code. As I’m quite busy, there’s a big back-log of features that are possible and nice to have, but not yet implemented.

  117. Leo Says:

    Hi Geir,

    thanks for the reply, no worries good things takes time, looking forward to it.


  118. peter Says:

    ohoh, the blue line is gone.

    tested it on IE 9, Chrome 25 and Firefox 19.

  119. geir Says:

    @peter, Now the line is back (albeit black). Thanks to Richard Pangborn for submitting the fix to the OptiMap open source project.

  120. peter Says:

    Thanks for the Quick fix Geir

  121. QQ Says:


    is it possible to have fixed start and end points, so that you can easily change number of middle points?

  122. Ty Says:


    Optimap seems to be calculating route extremely slow/not at all. I used this system about 3 weeks ago and it was a lot faster. Is there currently a problem with the system?

  123. Rod27 Says:

    Since all the routes are saved to the browsers memory requiring a massive amount of ram would there be any way to save the routes as flat files to the server and delete them when the routing is done? Or since it’s all client side? maybe to the local file storage somehow? This is probably impractical or impossible but with all the mundane requests above this is one that I think would be a game changer for solving long routes… thanks for your time.

  124. cody Says:

    great web site! unfortunately for some reason right now after plotting all of my locations, it goes very very slowly during the a-z route calculation. I have tried several browsers all with the same problem.

  125. geir Says:

    This recent slowness seems to be caused by a recent update on Google’s side, designed to stop users from sending too many requests at once to their servers. Unfortunately, I’ve found no way around it (yet).

    Will keep trying. If anyone else has any ideas, that would be great too.

  126. Craig Says:

    Great tool! I use this when planning my work trips. Can you add the drive times between each location?

  127. juan Says:

    Hi Geir, just calculate a route and I see the route drawn on the map, there is a problem or something with my browser?


  128. Oyito Says:


    There seems to be a problem because it does not draw the route on the map!

    I hope you can fix it soon
    A greeting

  129. geir Says:

    @juan, @Oyito: This bug should be fixed now. It was due to an update to Google Maps.

  130. Craig Says:

    Just wanted to thank you for your effort and let you know that the Garmin export appeared to work just fine with my Zumo 550.

  131. Oggy Says:

    BIG Thank You!

    Amazing work!

  132. Stacey Says:

    Can you please put Miles as an option instead of Kilometers. It would be nice to see how many miles it takes to get to each stop and the times for each stop would also be great but miles would be a nice option to have since we use miles more in America then anything. Thank you!

  133. Jamie Says:

    We suggest your site to a customer of ours, they reported that some of the routes that are suggested are avoiding minor roads.

    This is causing the routes to have big diversions in them is their anything you can do with this or is a problem with google maps.

  134. Geir Says:

    Hi Jaime, there is nothing in Optimap that makes it avoid smaller roads, so you would likely get the same results with Google maps. Optimap and Google maps tries to minimize travel _time_ instead of _distance_, so it could be that a bigger road is longer, but takes less time due to higher speeds.

  135. Julien Says:

    I want to request an AVOID LEFT TURNS function. That would be awesome. If this is in the works or already suggested (as it should be) please don’t be upset. I really just wanted to put that out there without reading very much. It’s kinda lazy but laziness brought me here. I mean, who wants to make a ton of left turns on busy streets where you’ve gotta wait for oncoming traffic to pass… not to mention all the traffic you impede while you wait!

    By the way… y’all are pretty awesome. Like really.

  136. Shane Says:

    Loving this, thank you!

    One suggestion: allow the possibility of defining clusters of addresses, with routes for each displayed on the same map . There could be an option for shortest total travelling time, or shortest average travelling time, or to make the clusters equal in terms of either distance or number of stops.

    Such a feature would be useful for a group of postal or charity workers to visit widely dispersed locations in a town. You’d put in how many workers you have available, select appropriate options as described above and the routes available for each worker would be displayed.

  137. Mike Says:

    This is a GODSEND! Now the bad news is it isn’t working for me:(

    I enter 50 address in the bulk box and then hit add list of locations, the all show on the map with red markers, when I hit either plan route option I get the loading box and nothing happens. It just sits there, nothings moving. The grey diagonal lines that show up over the screen do not move? Any help? I’m on Safari on a Macbook Pro.

  138. Alessio Says:

    Simply wonderful! You’ve made a great job.
    Just a little request:
    It would be useful if we could obtain the coordinates of a list of locations without calculating the routes.
    It could be perfect if we could extract a csv file like lat|long|address
    (to be exported to Tomtom as POI list)

  139. Joe Mcgrath Says:

    Great service, works a treat every time. Just got a nuvi 2440 and tried exporting routes. The waypoints go in no problem under “recently found”. Tried exporting routes and it only sometimes goes in, more often it doesn’t. It’s found in “trip planner” when it does work. I do everything the same so I’m not sure what’s going on there.


  140. Christo Says:


    I have a usage scenario and a suggestion.

    I tried to plan a trip with stops where I need to pick up kid (takes 10 min), be at a certain time at the dentist, stay there 45 min, then shop something if I have time (takes 5 min in store), then pick up other kids before they close daycare. My goal is to know when to start the trip, so that I can be at a certain time at a certain place, then spend a given time there, for multiple stops.

    So it would be great if I could specify the constraints, such as for each stop and the starting point and destination, optionally specify max arrival time or min departure time, or min/max duration of stay. The route would show me arrival/stay/departure/travel times for segments and stops.

    Or, simpler, just let me enter start time for the starting point and also override the departure time for each stop (or enter delay at each stop) one by one, and show me the route with times for all stops and the destination after each overridden time at each stop. I can then adjust the stay/start times until I meet the constraints I have in mind.

    Or at least show the travel times by segment (and then I would be able to add the delays and subtract from arrival times myself).

    Now (as far as I can tell) I can see the overall travel time only, which is helpful, but only if I didn’t have any time constraints except for the destination.

    It could also help if I could easily move/remove the destination (which would make a new destination out of the last stop before the old destination), so that I can experiment with what to visit last.

    Thanks for considering it.

  141. Keith H Says:

    love this site and am looking to get a garmin that it works with for the send to option. any ideas on which is best. i do routes of around 50 stops in a day

  142. Jeremy Says:

    Thank you.
    I’ve not run into really many issues thus far. Sometimes loading hangs, but easily gotten out of the with a page refresh or a “Start Over”.

    I did just run into a Geocode issue today.
    Address will not geocode.
    519 East Gude Drive Rockville MD 20850
    Whereas address will geocode.
    520 East Gude Drive Rockville MD 20850

    I don’t know any significant reason why one will and the other will other than it seems Even numbers will and Odd numbers will not. If I leave out the City and State (Street Address and Zip only), then it will geocode. I don’t follow whats happening on the backend on that one.

  143. Don Says:

    Routes worked for me on my old 1490 Garmin and also on the new Garmin 2595, after I figured out how to do it.

  144. stoppen met roken Says:

    Amazing blog! Do you have any hints for aspiring writers?
    I’m planning to start my own blog soon but I’m a little
    lost on everything. Would you recommend starting with a free platform
    like WordPress or go for a paid option? There are so many options out there that I’m totally confused .. Any suggestions? Thank you!

  145. Cheap Pilot Says:

    Is there any way you can add the option of choosing a straight-line (or even better, great circle) route? I want to use this app to solve a shortest-distance problem for multiple locations over which I will fly an airplane. So I obviously have no concern for following roads and such. I just want to plug in multiple lat/lon coordinates and get the optimal order in which to fly among them via direct routing. Seems an easier algorithm to write than one dependent on terrestrial infrastructure.

  146. Sam Says:


    Awesome work!

    Is there any easy way to make the displayed google map interactive so we could search in it and add the waypoints directly off the map?

    Right now, I have to have Maps in a window, grab a bunch of points, and manually copy over the addresses.

    I *was* trying to use Google’s Mapengine to pull the routes into a layer and export to a KML file, but it throws it into an XML format with lat,long … which would be great if your app could eat it and pull the and … that would be too awesome.

    Anyway, I found KLM2CVS, further mangled the data in OpenOffice and finally paste (slightly modified) into your app. Long way to go! Search and click-to-add would be *so* nice.

    Just a thought for an otherwise totally cool app!

  147. Ned Says:

    Great page but why does nobody consider that you might be traveling with trailer or van and will not be able to make uturns or park across the street on residential streets. I pick up people with special needs in a bus and uturns are not possible and sometimes add a very long detour, and I have to park in front of location. It would seem to be very easy to add a “if then” for a right side route into the program and then just a parameter for smaller roads. Then again maybe I’m wrong.

  148. James Says:


    I think Gonen has already suggested this but is it possible to have what he/she calls ‘Tourist walking tour’?

    Where you have one starting point and then routes/distances to a selection of postcodes or lat/lons. Would be so useful for me!

    Great site – currently close but no cigar!!



  149. marcella Says:

    I am trying to route 77 addresses, i have been in front of my computer for 30+ minutes. Is this normal? I have a mac pro and not sure why it takes so long to download. I use both fire box and safari….great site very useful with 100 addreses, just don’t understand why its sooo slow…

  150. eli Says:

    i am trying to use export to google maps.. but i have a problem because i entered all the address in Hebrew.
    hope you can help me.
    thank you!

  151. Adolfo Says:

    Works on Garmin Nuvi 1490 just need to go to the settings
    then my data and import the route and works

    Thanks this has helped make routes for me

  152. Alan Says:

    If you could tailor this for FedEx ground… You could make a ton of money from it. FedEx ground has no GPS maps or any type route planner. We take manifest ( 150 + stops) and have to map it ourselves.

    I tried out 86 stops. It mapped them, but then it froze when calculating the fastest trip.

    You can email me if you are interested in dev or testing.

  153. David Says:

    Maybe I’m not seeing it, but some of my runs list distances in kilometers, others in miles.
    I’m in the USA, and while I personally like the Metric system, my car’s odometer is in Miles.
    Is there a toggle I missed?

  154. Sean Says:

    Fantastic piece of coding! Question, is there a way to extend URL with “calculate fastest A to Z” without a user click?

    Thanks in advance

  155. Geir Says:

    Sean, it is possible to put &mode=1 at the end of the url. That will trigger A-Z calculation.

  156. Geir Says:

    David, there is no way to get miles I think. Everything should be in km.

  157. Sean Says:

    Geir, Thanks for the &mode=1. Work’s quite well. I’ve got some weird results that I can’t duplicate manually. I’ve extended my URL with incrementing loc=n&loc=n+1 etc etc… but on random occasions I’ll get a very wild result from a zipcode which, when pasted into maps.google.com, locate properly. Any suggestions on troubleshooting? I’m sure it’s something I’m passing but the url I’m generating is clean.

  158. Leandro Says:

    Good Day!

    I request the following possibility.
    One option to be marked BEFORE your route, only to set the connection points added without OPTIMIZE (REORDER) best paths.
    With this route would follow the exact sequence that the user has added the points on the screen.
    Sometimes already used the site to order the points, but we want to play again the coordinates and make small adjustments.

    Sorry for the English, was translated by google.

    Bom Dia !

    Gostaria de solicitar a seguinte possibilidade.
    Uma opção para ser marcado ANTES de calcular a rota, para definir somente a ligação dos pontos adicionados sem OTIMIZAR (REORDENAR) os melhores caminhos.
    Com isso a rota iria seguir a exata sequencia que o usuário adicionou os pontos na tela.
    As vezes já utilizamos os site para ordenar os pontos, porém queremos novamente jogar as coordenadas e fazer pequenos ajustes.

    Desculpe pelo inglês, foi traduzido pelo google.

  159. Leandro Says:

    Complementing would like what makes this example

    “Complementando, seria parecido com o que faz nesse exemplo”


  160. peter Says:

    hi Geir,

    There is a problem with “Drag to re-order stops”you can rearrange the adresses but the map is not responding on it.

    also the button “calculate Fastest round trip” is not working correct.
    it duplicates the adresses in the list.

    I add the adresses by url like this:


  161. Geir Says:

    Hi peter,

    Thanks for the heads up! I was trying to make optimap a little faster last weekend, and inadvertently broke the reordering functionality. It should be working again now.

  162. peter Says:

    thanks geir, its working fine again

  163. Shawn Says:


    Thank you for building and making this service free and available to all.

    I am wondering if this website program will stay available and for free.
    Since I depend on this site to make my daily routes for my current job picking up donations for big brothers donation center.

    Thanks again for this site.

  164. Shawn Says:

    Oh, I forgot to mention something about the program.

    Every time i use it, I right click on the white below the map and go to inspect element and change “div.mymap {height: 480px}” to 1200px. This allows me to go into f11 full screen and be able to print screen a lot more area and put into photoshop to piece together my whole route and print it off.

    If you could make your mapping program auto detect the browser resolution and auto adjust, that’d be greeaaaat. :)

  165. geir Says:

    Hi Shawn,

    As far as I am able, the service will remain free and available to all. However, it is built on top of Google’s maps service, and if they change terms or start to charge for its use, it is out of my control. But as long as it is up to me, OptiMap will remain free and available :-)

    PS. I made the change to auto-adjust the height of the map :-)

  166. Shawn Says:

    hey! great thanks a bunch.

    Just checked it out and it looks like the auto adjust goes maximum to “element.style {height}” of 812px now.

    “<div id="map" class="myMap" style="height: 812px;

    its fine though if you cant make it automatic.

  167. Robert Baron Says:

    It doesn’t work! Just tried it a couple of times, First with n=9, then n=3. Push calculate fastest route…….nothing happens!

  168. Robert Baron Says:

    Tried it again. Doesn’t work on IE10, does work on Google Chrome.

  169. Geir Says:


    Are you sure you are not running IE10 in IE7 compatibility mode? It doesn’t work in IE7 for sure. Problem with IE is it is the only browser that only runs in Windows, and that makes testing it a pain for developers who don’t use Windows (I left the Windows world in 2006 and have never looked back :-)

  170. CBASTIEN30 Says:

    Est-il possible d’utiliser votre outil en lien avec une autre application automatiquement, c’est a dire que l’application envoie des parametres comme adresses + options d’itineraire puis lance le calcul et recupere le resultats ? Merci pour votre reponse. Votre outil est sur efficace et tres rapide. J’adore !!

  171. Robert Baron Says:

    I shouldn’t be so critical about using something for free, but No I am not using Internet Explorer 10 in the compatibility mode. Your software does not run on IE10 in any mode. I am shocked by your answer about non-use of Internet Explorer. According to Netmarketshare’s most recent data (October 2013), Internet Explorer usage is 49% of the browser market….the next three are 18%, 16%, and 10%. Being a retired engineer and having worked in new product development for over 30 years, it was drummed into my head to satisfy customer’s needs, not your own. FYI, my need to see your software work in IE10 rather than Google Chrome browser, stems from the fact that the Google Chrome browser does a terrible, almost unacceptable, job of printing the map.

  172. geir Says:

    @Robert, I did test it in IE 10 now, and it worked fine for me, both for addresses entered and locations added by clicking on the map. Can you press F12 to open the developer tools, go to the “console” tab, perform the operations you were doing and see if any error message appears?

  173. Ram Says:

    hi geir did you find any solution for slowness, i.e about the google request per second ?

  174. Jason Says:

    Help required,

    I am trying to link my Garmin to Optimap and sometimes it uploads the routing fine other times I get the following script.
    Fatal Error: File Path: C:\Users\Jason\AppData\Local\Temp\npGarmin\tmp6C9E.tmp, line: 1, char: 10582 Message: expected entity name for reference. – the tmp numbers and characters change each time I retry!

    Can anyone advise please?

  175. Ty Says:

    IO am trying to get optimap to show me the best route for around 90 locations. The map enters the locations and they all pull up but when I click find fastest route A-Z it starts running (the completion bar pulls up) but it only gets about a quarter of the way and then stops. Is there any way to get this to work?

  176. Jan Says:

    I know that it is a dumb request,
    but could you publish a source code of yours index.php?

  177. Jan Says:

    I was referring to the site http://www.optimap.net/

  178. geir Says:

    @Jan, what will you use it for?

  179. lys Says:

    Hi there,
    I’m trying to get a solution between data set of 60 coordinates in latitude/longitude around the US. It’s quite a lot, but your program seems to be working fine until I get a “request failed: undefined.” Is the issue based on how many coordinates, or on the amount of data I’m requesting? I’ve tried on Safari, Chrome, and Firefox on this Mac running 10.8.4, and IE and Firefox on Windows 7.
    Thanks for all you do!

  180. lys Says:

    the set:
    35.110703, -106.609991
    33.748995, -84.387982
    30.267153, -97.743061
    44.801182, -68.777814
    33.520661, -86.80249
    25.901747, -97.497484
    30.877413, -84.20129
    41.878114, -87.629798
    39.103118, -84.51202
    41.499495, -81.695409
    44.909773, -67.070259
    36.380288, -75.830778
    32.78014, -96.800451
    40.947816, -90.37124
    40.2737, -76.884418
    30.750805, -104.193092
    34.052234, -118.243685
    36.114646, -115.172816
    35.149534, -90.04898
    25.788969, -80.226439
    32.366805, -86.299969
    29.951066, -90.071532
    40.714353, -74.005973
    27.167827, -80.266159
    45.523452, -122.676207
    40.233844, -111.658534
    40.58654, -122.391675
    35.282752, -120.659616
    37.774929, -122.419416
    37.339386, -121.894955
    32.715329, -117.157255
    42.172784, -91.107648
    47.606209, -122.332071
    38.627003, -90.199404
    30.438256, -84.280733
    27.950575, -82.457178
    40.217053, -74.742938
    37.865101, -119.538329
    29.657955, -82.301773
    39.290385, -76.612189
    48.759553, -122.488225
    42.886447, -78.878369
    39.737567, -104.984718
    41.600545, -93.609106
    35.994033, -78.898619
    40.371463, -78.777521
    33.495914, -105.523036
    47.925257, -97.032855
    29.760193, -95.36939
    33.577863, -101.855166
    36.166667, -86.783333
    41.252363, -95.997988
    42.638922, -83.291047
    38.581572, -121.4944
    36.974117, -122.030796
    38.402136, -122.823881
    42.499994, -96.400307
    47.912876, -122.098185
    43.422619, -95.102231
    36.153982, -95.992775
    31.549333, -97.14667


  181. geir Says:

    @lys, looks like there is a problem finding a path between one of the points and the others. Is there one that is not close to a road?

  182. Jan Says:

    I’d like to use it as route calculation for my band (Kontrabant) trip.
    So i’d like to see how are you passing route requests to you script.

    And another thing, I can’t figure it out how to add labels to points on already calculated route.

  183. lys Says:

    in theory no, but I could understand the program getting confused. I stopped inputing by coordinates and added manually by place name, and it seemed to be doing much better after I removed a few potentially problematic spots. but it still halts after about 1/6 of the bar is full. the points are all major cities or towns, all accessible by road one way or another.

  184. Maurizio Says:

    Hello, why not implement a url parameter that forces the optimization of the waypoint before the html is generated? I need to work on waypoint optimized but instead file_get_contents course …. can not supply them.

  185. Jay Says:

    awesome programming! i use this to do door to door sales and plan my route of 50-75 houses per day. on my Garmin device, the route planner only allows 25 entries. i have no problems so far uploading up to 75 at a time to my GARMIN 3490. Thanks

  186. Joe Says:

    Great job. 15 addresses pushed into my Garmin GPS.

  187. Bob Says:

    It would be nice to be able to export the trip data for archive, tax reporting requirements. We are supposed to be keeping records if the trip is a tax deductible expense. Those paper log books are a pain. thanks

  188. gaston Says:

    Great Job,
    file exported with garmin communicator, 25 addresses
    works perfectly on garmin 2447

  189. michael Says:


  190. Tim Says:

    In the past export worked fine (Garmin). Had an update to IE 11 two months ago which caused export not to work. (Garmin Plugin problem?) Installed Google Chrome and was exporting fine again. Tried today in Chrome and not able to export to Garmin. Tried exporting in IE again with no success either.

  191. Tim Says:

    For clarification, I have been using the “Export Waypoints” feature.

  192. michael Says:

    also was using the export waypoints function and also have found last 2 days the button is not working

  193. Tim Says:

    Tried to export to Garmin again with no success.

  194. Jo Says:

    Use OptiMap regularly for bulk address route planning and export to Garmin Nuvi 3598, for the past four months.

    On occasion I have had to refresh the page (Firefox browser on Win 7) When the Export Route and Export Waypoint buttons fail – I manually copy the contents of the OptiMap “Download GPS file” directly in my Garmin, Internal Storage/GPX Folder – replacing the contents of file: myData.gpx. Other than that no issues.

    Great tool – thank you.

  195. Tim Says:

    Geir, Thank you for fixing the issue! I was able to successfully export waypoints to Garmin (from Chrome and IE 11).

  196. michael Says:

    working great thanks again

  197. Keith Savage Says:

    Nice clean implementation. Great coding. Thumbs up!

    Bug Report: Latest Google maps on android 4.4.2 does no properly
    accept the export from optimap.net, thus one cannot use google

    Under Linux with Firefox browser, export to google maps
    automatically switches to classic google maps, which works great.
    The new google maps does not yet accept multiple routes…

    Keith Savage

  198. Kim Says:

    Think this is a brilliant tool and used very successfully for last 6 months or so. We make multiple house visits, but it does seem to struggle with more than 50 postcodes. The last 2 days, we have been getting more and more error messages “request failed: undefined”. We recently had an issue with Google Chrome, so are operating from google – could this have caused these errors? I’m not a great technie, so simple language please :-)
    Thanks, Kim

  199. Kristóf Bihari Says:


    First off, the service is fantastic, I have used for a few (private) routings.
    my question is: do you have any idea how long a computation should take for a given number of nodes? I gave it 76 nodes (“public bike stations” (like Bacrlays bike or Velolib) in Budapest) and it has been running for three days (72 hours) now and it doesn’t seem to be doing much: it doesn’t seem to be using much CPU (about 0.2% on avg., running in a dedicated Chrome window) or memory and according to Fiddler, it only send a query to Google Maps every 45-60 or so minutes.
    If it is somehow related to the Googe Maps quety quota, is there a way to get around it? Maybe running it on an own server with an own Google Maps key? (I only want to calculate an optimal way to visit all said bike stations on the opening day I have no commercial intentions.)

    Best regards,


  200. Kristóf Bihari Says:

    For the record, the 76 nodes are:

  201. Elliot Lee Says:

    Problems with geocoding

    I’ve run into a few addresses that show up in a completely different place on the map than they should. They show up correctly if I enter the address on maps.google.com

    An example is “54276 Terrace Ln, South Bend IN”

    BTW thanks for your service. It is very useful to us when we’re shopping for a house. I especially appreciate the optimap.net domain – makes it easier to share with others.


  202. Khalid Says:

    Great tool. It would also be good if you could add a button that prevents the optimiser from re-ordering the way-points. I know this just makes it the same as google map navigation; but this is much easier to use with a list of multiple addresses.

    Could you add this feature (or does anyone know of a site where I can paste in multiple addresses as text and get a visual display of the routing between them?)

Leave a Reply