MapQuest Developer Blog

  • Alternate Routes added to Directions Service Beta

    .codeblock { -moz-background-clip:border; -moz-background-inline-policy:continuous; -moz-background-origin:padding; background:#F5F4EE none repeat scroll 0 0; border:2px dotted #DDDDDD; color:#06263C; font-family:courier,monospace; width:100%; } .picture { background-color: #F9F9F9; border: 1px solid #CCCCCC; padding: 3px; font: 11px/1.4em Arial, sans-serif; } .picture img { border: 1px solid #CCCCCC; vertical-align:middle; margin-bottom: 3px; } .right { margin: 0.5em 0pt 0.5em 0.8em; float:right; } .left { margin: 0.5em 0.8em 0.5em 0; float:left; }

    If you ask three people for directions to somewhere they journey to frequently, you are likely to receive three different sets of directions. Each person will have some short-cut, or uses one road over another because of traffic, or has a particular highway they always want to avoid. Personally, I'll drive extra miles down unnecessary roads just to avoid traffic lights. I know its an illusion, but even if the trip ultimately takes longer than sitting at traffic lights along a shorter road, I'd rather keep moving.

    In order to emulate the experience of having multiple friends bicker about which is the best route you should take, our Directions team have created ....(wait for it)... Alternate Routes! (Dun Dun DUUUN!) Joking aside, I think this is very very cool functionality. The function call is basically the same as a regular route call, with a couple of extra parameters:, and looks like this:

    The maxRoutes parameter is how many total possible routes you want back, including the first (or "main") one. The Overage is a percentage extra time thats allowable for an alternate route to take. For example, on an hour-long route, an overage of 25 is 25% would be up to an extra 15 minutes.

    So lets say you set a maxRoutes=3. The response will include the "main" route, just like normal, plus an additional node containing up to two other routes that provide alternative ways to your destination. Each route will also have a new "name" node to help identify them. We try to fill this with the name of a road that is unique to that particular route. Each route is complete with narrative, road shields and thumbnail maneuver maps.

    Here is an example of travelling from Harrisburg to Reading in pennsylvania, asking for a total of three routes (2 alternate routes):

    Main Route
    The Main Route, which we named "Interstate 76 E", takes you down to the Pennsylvania Turnpike. It is calculated to take 1 hour 7 minutes to travel just under 59 miles.
    Alternate Route #1
    The first Alternate Route avoids the Turnpike, and instead takes you up Interstate 81 and along Interstate 78. It takes a few more minutes overall, but avoids a big toll road. It is calculated to take 1 hour 12 minutes to travel around 63 miles.
    Alternate route #2
    The second Alternate Route takes you in a very direct route along Routes 322 and 222. It is shorter than the other routes, but takes a little longer than both of them, clicking in at 1 hour 21 minutes, to travel under 55 miles.

    So thats how it works!. Pretty darn cool, eh? More details, Documentation and sample links are found (as always) on the Developer Network beta page. The sample I took the screenshots from is part of the service documentation

    Let us know on the Beta Forums if you find any issues, or if you create a cool application using Alternate Routes.

  • Javascript and ActionScript SDKs updated in Beta

    .picture { background-color: #F9F9F9; border: 1px solid #CCCCCC; padding: 3px; font: 11px/1.4em Arial, sans-serif; } .picture img { border: 1px solid #CCCCCC; vertical-align:middle; margin-bottom: 3px; } .right { margin: 0.5em 0pt 0.5em 0.8em; float:right; } .left { margin: 0.5em 0.8em 0.5em 0; float:left; }

    I'm going to try to keep this post short and sweet, since the platform teams are starting to deliver features faster than I can find time to write about them.

    Before the New Year We updated both the ActionScript and Javascript SDKs in Beta

    First - the AS3 / Flex SDK:

    FlashBuilder 4 Support
    We've made the necessary changes so that the SDK works with both FlexBuilder 3 and FlashBuilder 4. The SDK should also work with both Flash Player 9 and Flash Player 10. Please let us know on the forums if anything does not work in any of those scenarios.
    All SWCs have been compiled into one file, MapQuestAPI.swc
    We've consolidated all the different .swc files into one single .swc. Our developers sat me down and explained how I was being an idiot asking for separate .swcs, how it didnt save anything for the final application compile size, that everything will still work everywhere, and that all I was doing was making our users' lives painful instead of helping them. Mea Culpa!
    Object Model overhaul to remove unecessary getter/Setter functions
    Most explicit object.setProperty(value) functions have been removed from the SDK, in favor of a more AS3-friendly = value. Returning these values using object.getProperty() has also been changed to This is a BIG CHANGE! Be prepared for application code refactoring.
    Shapes and ShapeCollection Overhaul
    The code has been overhauled to be simpler, and use a new internal drawing engine. by doing this we have now been able to add a couple of other new cool features...
    Overlay cutout functionality added.
    You can now add child overlays to a main overlay, and these child overlays will act as clipping masks to punch holes in your polygons, rectangles, ellipses, and circles. So now you can do donut polygons! yay!
    Overlay Cutouts
    You can use any shape overlay to cut holes.
    geodesic Lineoverlays
    LineOverlay now has a geodesic option that when set will render a curved line that follows the shape of the earth.
    User Guide overhaul
    All the user guide documentation has been consolidated into a single user guide that follows our new format - we will be continuing to flesh this out over subsequent betas.

    And now the Javascript SDK:

    Overview map control bug fixes
    Several bug fixes along with removing the dependency on vector shapes for the area highlight - so you no longer need to have the overlays module loaded to use the control.
    Added a Carousel Control
    Modeled after our Biz Locator control, this lets you easily add shapecollections to a control on the map that your users can use to toggle the collections on and off.
    Documentation Upgrade
    Added Shape Collections documentation including Basics of Shape Collections, Remote Collections: GeoRSS, KML, and added more materials to the API Reference.

    As always more to follow soon - in this case VERY soon, as I committed the cardinal sin of taking vacation, and returned to find a huge pile of updates on my desk that the teams did while I was gone!

  • Address Point Data now in the Beta Geocoding Service

    .picture { background-color: #F9F9F9; border: 1px solid #CCCCCC; padding: 3px; font: 11px/1.4em Arial, sans-serif; } .picture img { border: 1px solid #CCCCCC; vertical-align:middle; margin-bottom: 3px; } .right { margin: 0.5em 0pt 0.5em 0.8em; float:right; } .left { margin: 0.5em 0.8em 0.5em 0; float:left; }

    Last week we added new data to the geocoding service that resolves addresses down to their exact location

    This means that we are now able to return two latitude / longitude pairs per address - one that represents the middle of the address land parcel (for Display), and one for where the address connects to the road network.

    Fortunately, this is one of those features where a picture is worth a thousand words, so I will stop trying to explain it and just show some differences

    Red star is old known location, blue and green stars are the new known location
    Address Point Geocoding difference
    The red star shows where a regular geocoding data set would place the address
    The blue star shows where we now tell you the center of the address parcel
    The green star shows where we know the address connects to the road network

    In the screenshot above, the red star represents where a regular interpolated geocode would place the address on the road. Regular geocoding data does not actually contain every single address on a road. instead, it normally contains the length of the road, and the range of house numbers along the length or the road (e.g: 1-99 Main Street). So if you looked for 50 Main Street, math would be used to work out the approximate location of where #50 probably is between #1 and #99

    However, with the new Address Point data, we know the actual physical location of each particular house. So, in the screenshot above, the blue star shows us the center of the physical land parcel - as you can see, its a LOT more accurate!. Then the green star shows where the actual address connects to the road network, so we can really deliver you right to the doorstep of the location you are trying to get to.

    Here is where we need your help, faithful reader. Adding Address Point Data represents a massive increase in the size of the data we are using in our geocoding service, and we are load-testing before we roll out to full production. Please take the time to hit our Beta geocoding service at as much as possible.

    when using the service the response will inform you if it has resolved to a Point in two different ways.
    Firstly, the GeocodeQuality node contains a pure text description like this (JSON): geocodeQuality: "Point"
    Secondly, the GeocodeQualityCode will start with a "P1" for the granularity value - like this: geocodeQualityCode: "L1AAA"

    For a full understanding of the geocodequalitycode value and what the different response values mean, the GeocodeQualityCode page in the documentation breaks it all down

    Lets finish this post with some more screenshots that show the accuracy difference of address point versus interpolated geocoding

  • Static Map Service launched

    I'll start by saying a belated Happy Thanksgiving to everyone. We hope you all had a great Turkey-Day.

    Last week we released the Static Map Service live into Production at We've been blogging about the features of it as they've rolled out into Beta, but the Production Launch seems like a good time to give a nice summary of them all.

    Get A Map
    Embed a printer-friendly MapQuest Map image on your web page without requiring any code, by accepting querystring parameters on the image URL.Basic parameters are center point, zoom level, height, width, and whether or not you want any POI icons on it
    Put a route highlight on your static map by passing in a sessionID from the Directions Service, or by providing the line co-ordinates,-76.413100&zoom=7&size=400,200&pois=1,40.098579,-76.398703
    A basic map, with a POI on it,-76.413100&zoom=7&size=400,200&pois=1,40.098579,-76.398703
    Auto Best Fit
    If you provide POIs without providing a zoom level and a map center, we will return a map that fits all your POIs on it, as zoomed in as possible,200&pois=1,40.098579,-76.398703|orange-100,40.069116,-76.401178|green,40.098088,-76.346092|yellow-s,40.069607,-76.352282
    A best-fitted map,200&pois=1,40.098579,-76.398703|orange-100,40.069116,-76.401178|green,40.098088,-76.346092|yellow-s,40.069607,-76.352282
    Map Styles
    get Street, Aerial, and hybrid maps. Also get street maps in a variety of other styles including black & white or european or classic MapQuest - Check the documentation for the full list.,-76.413100&zoom=7&size=400,200&type=hyb
    A hybrid map,-76.413100&zoom=7&size=400,200&type=hyb|lu612007nq%2C20%3Do5-50zah&center=40.044600,-76.413100&zoom=7&size=400,200&style=european
    European style map|lu612007nq%2C20%3Do5-50zah&center=40.044600,-76.413100&zoom=7&size=400,200&style=european
    Draw lines on the map
    pass in raw or compressed shapepoints to draw polylines on the map.,200&center=40.0378,-76.305801&shapeformat=cmp&shape=uajsFvh}qMlJsK??zKfQ??tk@urAbaEyiC??y]{|AaPsoDa~@wjEhUwaDaM{y@??t~@yY??DX&zoom=7
    Map with a line drawing on it, using compressed format,200&center=40.0378,-76.305801&shapeformat=cmp&shape=uajsFvh}qMlJsK??zKfQ??tk@urAbaEyiC??y]{|AaPsoDa~@wjEhUwaDaM{y@??t~@yY??DX&zoom=7
    Either set declutter=true for an automatic decluttering of overlapping POIs, or manually specify an X/Y pixel offset for each icon,-76.413100&zoom=3&size=400,200&pois=1,40.098579,-76.398703|orange-100,40.069116,-76.401178|green,40.098088,-76.346092|yellow-s,40.069607,-76.352282&declutter=true
    An auto-decluttered map,-76.413100&zoom=3&size=400,200&pois=1,40.098579,-76.398703|orange-100,40.069116,-76.401178|green,40.098088,-76.346092|yellow-s,40.069607,-76.352282&declutter=true
    getPlacemap single-line address function
    the very convenient /getPlaceMap?location= function takes a single line address and optionally a single icon, to provide a short-cut method of getting a static map for a location without needing to have the geocoded lat/lngs first.,PA&size=400,200&zoom=7&showicon=green-1
    A map generated using an address or location,PA&size=400,200&zoom=7&showicon=green-1
    Custom Icons
    Provide the URL for your own custom icon to use for a POI. We'll grab the icon, cache it for performance, and use it on the map. If you change the icon there's a function to flush it from our cache and grab the updated version.,200&center=40.024600,-76.413100&zoom=6&,1,c,39.980237,-76.21054
    A map with a custom icon,200&center=40.024600,-76.413100&zoom=6&,1,c,39.980237,-76.21054
    Add Traffic to the map
    You can specify incidents, construction, traffic flow, or all together, to be shown on the map. Point to note - the traffic is Real-Time, so whoever is looking at the map will see the state of traffic at the time they are looking, not the state of traffic you saw when you made the map.,300&center=40.720409,-73.994637&zoom=7&key=YOUR_KEY_HERE&traffic=1
    Traffic map with incidents, construction, and traffic flow,300&center=40.720409,-73.994637&zoom=7&key=YOUR_KEY_HERE&traffic=1
    Multiple Image Formats
    Support for jpg, png, gif image output formats. no real need to show images of this - just tell us the image format that works best for your application.

    Don't forget to check out the full documentation at

    Stay tuned - it's not Christmas yet! we've got a few updates left in us before the end of the year...

  • Time Dependent Routing and Path From Route added to Directions Service Beta

    .picture { background-color: #F9F9F9; border: 1px solid #CCCCCC; padding: 3px; font: 11px/1.4em Arial, sans-serif; } .picture img { border: 1px solid #CCCCCC; vertical-align:middle; margin-bottom: 3px; } .right { margin: 0.5em 0pt 0.5em 0.8em; float:right; } .left { margin: 0.5em 0.8em 0.5em 0; float:left; }

    We have two new features for the Directions Web Service Beta today. One of which is awesome and cool, and is rather obvious in what it does - That would be Time Dependent Routing. The second is incredibly powerful and complex, and is going to take a little time to explain, and that is Path From Route.

    Time Dependent Routing

    We've added new parameters to the Route function that let you tell us what time, and on what day, you want to start your directions. "Why would that matter?" I hear you ask. Well, the road network can change depending on the time of day. Sometimes a road is open, and sometimes it is not. Sometimes you can turn left at an intersection, and sometimes you can't. There's usually a sign at these lights telling you the hours you are allowed to turn left, and the hours you aren't. You normally only get to see them at the wrong time of day, sitting in a left turn lane with your indicator blinking, wondering how you are going to get back into traffic and what to do now you can't use the road you thought you could. We try to avoid giving people directions that would leave them stranded like that. However, now, by telling us when you plan to travel, we can take this into account and provide better directions that could get you there faster than if we didn't know when you were traveling.

    Make sense? good! ok, here's an example...

    restricted turn
    Because you cannot turn left at certain times, normally we have to route you round the block to make sure you aren't stuck at a left turn you can't make
    unrestricted turn
    But if you tell the directions service that you are travelling at 4 PM on a saturday, we know you can turn left.

    You can see an interactive example in the documentation, by following this link. Details on the parameters are found here

    Path From Route

    OK, this could be hard to explain, so bear with me. If you have a bunch of points or places, and you have a route you are going to be traveling, this function takes them both, and will tell you how far away from your route each point is, and how long it will take to drive to each point from the nearest point on your route where you could actually leave it AND tells you the Lat/Lng of where you would leave your route to go to each place.

    Again, lets see if an example would help.

    Lancaster - Hershey, plus a bunch of random locations
    1. Lets assume we are driving from Lancaster, PA to Hershey, PA. We have a bunch of Gas Stations (note: these are not real, but randomly generated for the example), and we want to know which ones are accessible within five driving minutes from our route
    Locations filtered for those which are with 5 minutes drive off of the route.
    2. So we tell the PathFromRoute function to compare these gas stations to our route. We also tell it that we are only interested in gas stations that we can get to in 5 minutes (we could also have said 5 miles, for a different result). the service will provide the necessary information to filter the gas stations.
    Showing the details that are returned by PathFromRoute
    3. If we examine three of the points returned within 5 minutes of our route, we can see that for each point we receive the driving distance and time, as well as the latitude & longitude of where to leave our original route to detour to the gas station. Using that Lat/Lng as a starting point, we can then generate the detour directions to the gas station.

    Still with me? Great!. Further details on the PathFromRoute function, as well as an interactive sample, can be found here.

  • Web 2.0 Geocoding Service Launched!

    Today we are very proud to announce that our new Geocoding Service has left Beta and has gone live to Production at

    This is our third web service we have pushed to Beta, iterated, and then released to production, since we first pushed out the Beta of the Directions Web Service on July 20th. When you consider that we also have the Static Map Service as well as version 6 of the JavaScript and ActionScript SDKs in Beta, I think that is a rather incredible pace we are maintaining!

    I'm not much of one for flowery words, so I'll let the product speak for itself.

    The MapQuest Platform: Geocoding Web Service allows you to access MapQuest geo-location data directly over HTTP without having to go through a language-specific SDK. Requests can be submitted as Key-Value pairs, JSON, XML and more. Responses do not have to match the request-type; mix-and-match to fit your development needs. Full documentation, forums, and other resources are available on the Developer Network


    Address Geocode function
    Provide either a single line address, or an address broken down into its component parts (5-line) and receive back potential addresses and lat/lngs, in order of confidence
    Here's an example of just how easy it is:
    will return a result you can view here
    or, if you want to be particularly impressed by how easy it is to use, try out the little geocoding form I built right into the blog post! now THATS COOL!! I've deliberately picked a default town name that returns ambiguities - did you even know there were four towns in Georgia all named Four Points? Why don't you give your town name a try, but without entering the state, just to see how many other towns with the same name exist in the country.

    (Results will be displayed below)

    Reverse Geocode function
    Provide a Latitude and Longitude, and receive back the known address information of that location.
    Batch Geocode function
    Geocode up to 100 locations at once in a single batch function call. You can also receive the output in a delimited-text file for easy importing into Excel or a database.
    Reflected User-provided values
    Add your own data into the location object on your request, and receive it back in the response. Great for helping you maintain state in your application, and for keeping your own information about the location packaged together for your application.
    ViewPort Biasing
    If you provide a Map Bounds as part of your geocode call, ambiguity results within the map bounds will be moved to the top of the results list. So if you have someone already staring at a map, this greatly improves the chance that the place they are looking for is the top result
    ccTLD Biasing (Country Code Domains)
    If you don't provide a country for the address, the country will default to the domain of the web address making the geocoding request. For example, if you make a request from, we will default the country to France unless you tell us differently.
    Thumbnail Ambiguity maps
    Each ambiguity result can return a static map URL that provides a thumbnail image of the ambiguous location, if you wish to display these to end-users for some context when disambiguating.
    Delimited File Output
    For any of the geocoding service functions, you can specify outFormat=file and a delimiter=of Comma(,) Pipe(|) Colon(:) or semi-colon(;). The service will then return a delimited text file including a header row. This should be especially useful for the batch geocoding function

    Stay Tuned for more updates

    More updates to Beta, and more Production roll-outs to come before the end of the year - we're not done yet

    Please remember to subscribe to the RSS feed, follow MapQuest on Twitter, or become a Fan of MapQuest on Facebook by clicking the links at the top-right of the page. Thanks!

  • A Ton of updates for Static Map Service and Geocoding in Beta

    The Geocoding and Static Map Service teams have provided another update with more feature enhancements and improvements. We hope you like them, try them, and find them useful. Please remember to provide feedback on the Beta Forums if you find the time. Ok, enough chit-chat! On with the features...

    More details on the features listed below are always found on the Developer Network Beta page

    Geocoding Service

    Delimited Text File Output

    We've added a new format to the geocoding service of outFormat=file. It can be used for geocoding, reverse geocoding, and batch geocoding. The response will be a text file containing your results.

    You can specify the delimiter you want out of a list that includes commas, pipes, colons, and semi-colons - so, for example delimiter=|,

    The file also contains a header row, so you should find yourself with a nice import into a database or a spreadsheet. The hope is that those using the Batch Geocode function will find this very useful

    Static Map Service

    New Function: Place Map!

    A new /getPlaceMap?location= function has been added to the Static map service that easily allows you to get a map for any place you know the address of without having to worry about using the geocoding service to get the latitude / longitude.

    It takes a single location, map size, and zoom level. You can provide a single icon if you want a POI on the map to show the exact location.

    One item to note: because the return is an image, we can't provide an ambiguities list like we can in the Directions Service. We always take the top of the ambiguous results (the one with the highest granularity and confidence) and use that for the image

    Auto Best Fit

    This one is very simple! If you have a group of POIs on the map and do NOT provide us with a zoom level of a center Lat/Lng, the returned map will be fitted around your POIs at the closest zoom to fit them all in.

    Just Declutter it please!

    We've added a declutter=true parameter to the static map as well, so you no longer have to provide all the pixel X/Y offsets. Instead, just set declutter to "true" and the service will handle it all. Because of this change, all the pixel X/Y offset values have been made Optional.

    Additional Map Styles

    Another new parameter now unlocks different map styles. style= provides black & white, classic, European styles, and others. Check the documentation for the full list

    Other Static Map Additions

    We've made quite a few other tweaks to the Static Map Service too:

    • Added support for Compressed Line overlays using a shapeFormat parameter
    • The MapType parameter now defaults to Map
    • POI Offset values are now optional
    • Minimum Map Size restrictions have been removed

    Thats all folks

    More to come soon! The end of the year draws nigh and we're looking to finish it out on a high note by sustaining our current pace of betas and production roll-outs, so stay tuned and check back frequently.

    Almost forgot - my erstwhile companion in crime on this blog, Josh, has asked me to remind everyone to subscribe to the RSS feed, follow MapQuest on Twitter, or become a Fan of MapQuest on Facebook by clicking the links at the top-right of the page. Thanks!

  • New MapQuest Map Style Added to JS and AS3 SDKs in Beta

    You may have noticed that has a new style to its maps today. We're celebrating this launch on the SDK team by pushing an extra special update to the JavaScript and ActionScript 6.0 SDKs in Beta to enable the new map style.

    While we're at it, we also added a few other things to the JavaScript SDK. Namely:

    • A new Overview Map control you can add to the main map
    • A documentation overhaul for presentation
    • New Documentation sections, including how to do your own custom POIs

    Check the Developer Network Beta section for the latest AS3 Packages (AS3 Release 3) and for JavaScript include string and docs (JS Release 4).

    And now, because a picture can paint a thousand words - a totally gratuitous amount of screenshots!

    If you like these, you can see more, and read more, on the main MapQuest Blog

    .picture { background-color: #F9F9F9; border: 1px solid #CCCCCC; padding: 3px; font: 11px/1.4em Arial, sans-serif; } .picture img { border: 1px solid #CCCCCC; vertical-align:middle; margin-bottom: 3px; } .right { margin: 0.5em 0pt 0.5em 0.8em; float:right; } .left { margin: 0.5em 0.8em 0.5em 0; float:left; }
    The New North America (Zoom Level 2)
    The New North America (Zoom Level 2).

    The new map style with Globe View turned on in the AS3 map toolkit
    The new map style with Globe View turned on in the AS3 SDK.

    New map Style with the Overview Map control in the JavaScript SDK
    New map Style with the Overview Map control in the JavaScript SDK.

    New Map Style with a Draggable Route added and in mid-drag
    New Map Style with a Draggable Route added and in mid-drag.
  • Draggable Routes for Actionscript now in Beta

    Not to be outdone by the latest beta releases from the Services Team the SDK team have a brand new Directions module for the Actionscript/Flex SDK that uses the new Directions Service already in production.

    ActionScript SDK Updates

    Available on the Developer Network Beta page.

    Completely new Directions module
    There is a new Directions.swc which replaces all the routing functionality previously found in the AdvantageApi.swc - this is a complete overhaul and upgrade to the object model and how you use it - it is now MUCH MUCH simpler and saner - and smaller!
    Simplified Routing Function
    Create a route object, pass in your locations, provide your map object, and watch the route ribbon and stop-icons appear on the map automagically. Provide an event handler to receive the directions narrative. Done!.
    If you are a power-user type, you can dive under the covers to provide all the different options available from the underlying Directions Service or customize the look and feel of the route ribbon and stop-icons that are added to the map.

    The code would look something like this:

    this.myMap = new TileMap("YOUR_KEY_HERE");
    //create an array of locations
    var arrLocations:Array = new Array();
    arrLocations = ['Lancaster, PA', 'York, PA'];

    //create the Directions object, hand in map object and locations array
    this.dir = new Directions(myMap, arrLocations);
    //Success Listener - handle the narrative here
    dir.addEventListener(DirectionsEvent.DIRECTIONS_SUCCESS, doSuccess);

    //get the route
    Draggable Routes!
    If you want your users to be able to drag the route, then on the directions object, just add dir.ribbonIsDraggable = true; before asking for the route - at the end of each drag, your directions success event handler is called again so you can handle the updated narrative - that's it. done!
    static map screenshot

    Optimized Routing
    With Optimized Routing, all of the stops between the first and last are reordered for the shortest overall distance or drive time, giving the most efficient path for visiting several locations on a single journey. Instead of calling the dir.route(); function, use the dir.optimizedRoute(); to get an optimized route.
    Route Matrix
    A Route Matrix request in the Directions Web Service will return a quick and easy calculation of the distances and drive times between a bunch of points. Nothing gets added to the map, the results are returned to your success listener, but you set up the directions object in the same way as a regular route and then call, for example, dir.routeMatrix(); instead.

    Stay Tuned!

    Work continues as we revitalize, enhance, upgrade, streamline, and simplify our web services and SDKs. It remains our goal to roll out each project to beta at the end of every sprint if possible (some things take more than one sprint). I hope to be back here soon with a nother blog post announcing more cool things

  • Batch Geocoding and Static Map Custom Icons in Beta

    Hot on the heels of last week's releases we have another two Beta updates.

    Geocoding Web Service Updates

    Available at

    Overhauled Documentation
    First thing you'll notice is overhauled documentation and better examples for the previously available functions of geocode and reverse geocode. It should now match the style of the other services.
    Batch Geocoding
    We've added a new function that lets you geocode up to 100 addresses at once. Each address has its own ambiguity list returned in the results.
    Map Biasing
    If you provide a Map Bounds with your geocode request, then we will move the ambiguity results that are within the map area to the top of the list. For example, if you geocode the city of Lancaster, and prove a map bounds which contains south central PA, then Lancaster, PA will be at the top of the return list instead of Lancaster, CA.
    ccTLD Biasing
    We now default the first country used for geocoding to the country code found in your top level domain, instead of always to the U.S. For example, if your website is "" we'll try geocoding in France first, instead of in the U.S. You can of course always override this merely by providing us the country as part of the address.
    Ambiguity Static Maps
    We've hooked the geocoding service up to the Static map service. Now, each ambiguity in the results also has a URL that provides a simple static map of the ambiguous location
    static map screenshot

    Static Map Web Service Updates

    Available at

    Custom Icons
    You can now provide us with the URLs of your own custom icons for use on the static Maps. Because we cache the icons for performance, there is a new function to flush an icon from our cache, in case you update the icon.
    custom icon screenshot
    New Image Formats
    You can now get static maps as .jpeg, .png, or .gif formats. the new parameter is imagetype=.
    All Icons Available from pois= Parameter
    All the icons used by the mcenter, pcenter, scenter, ecenter, and stop parameters are also now available as icon names for the pois= parameter.

    More to Follow Coming Soon!

    As we continue to iterate on our projects, we are striving to maintain a schedule of releasing new versions to beta every two weeks, with new features, bug fixes, and upgraded documentation, until the projects are complete and roll out to production. Stay tuned for more beta versions coming over the next weeks.