MapQuest Developer Blog

  • Geocoding is exciting

    Geocoding is a very utilitarian tool and also one of the most popular capabilities in the MapQuest Platform. Did you know geocoding can also be witty, fun and exciting? Here's how: Oh So Witty: It assigns a latitude and longitude coordinate to a street address, zip code, intersection, or geographic boundary. Exciting: Because without geocoding, you can’t show a map, driving directions or start a proximity search!  If I was desperate for a Sonic burger I wouldn’t’ be able to find a Sonic without using a geocode. Good ol' fashion fun: Geocoding also allows businesses to do analytics such as understand where their customers are and where their customers are coming from. And just when you couldn't get enough of geocoding, here's what makes MapQuest geocoding unique: -       The ability to return a 5-character result code to verify the accuracy of locations in greater detail than a simple yes/no or percentage match. -       Support for geocoding up to 100 locations at once in a single batch function call. -       Address point geocoding – this means we return a geocode that represents the middle of the land parcel and one where the address connects to the road network. -       Thumbnail ambiguity maps – if the MapQuest service finds multiple options for the geocode you can return a thumbnail image of the ambiguous location to give end-users some context when disambiguating. -    Reverse geocoding - take a latitude and longitude and find what address it is -       And more. . . . All of this can be easily accessed through our Geocoding API, which you will also access when using our JavaScript API or our Flash Maps API. MapQuest Community Edition allows up to 5,000 geocodes per day. The licensed solution, as part of the Enterprise Edition, has unlimited access.  We license geocodes to be used in conjunction with maps and directions as well as provide geocoding only licenses. If you're looking for more geocodes but aren't interested in an Enterprise license, do not fear.  Our Nominatim search API built on top of Open Street Map data can also geocode and reverse geocode.  No key is required and MapQuest sets no transactional limits!  Plus, since its on top of crowdsourced Open Street Map data, you can fix any data problems you might find.
    If you have questions about geocoding, just give us a call 888-627-7837 at or email info@mapquest.com .
    Now get geocoding!
  • Click the Map for Weather

    It's summer time and no matter where you are, that can mean some pretty interesting weather! Let's explore what we can do to mash-up weather forecasts with MapQuest maps. Step One:  Find a simple weather web service. I like to use the GeoNames web service for two reasons: it's free and in json. Further documentation for the GeoNames weather web service can be found here http://www.geonames.org/export/JSON-webservices.html. Click map for weather Step Two:  Get a map from the map constructor (http://www.mapquestapi.com/sdk/js/v6.0.0/basic-map.html#basicmap). and create a location. To do this, add a click event listener to the map (http://www.mapquestapi.com/sdk/js/v6.0.0/basic-map.html#events). Step Three:  Now grab the lat/lng from the map click event and use it in the GeoNames service request.  You can use your own username! Once you have the weather json response, you can grab the current conditions. I created a simple POI (point of interest) with the station name in the title, and the clouds and temperature in the content window. After adding the POI to the map, the info window is toggled on since it's the only POI on the map. Congratulations: You now have weather on click anywhere in the US! That's all there is to it! You can see it working here http://www.mqdemo.com/brian/clickEvent.html.
  • Get Creative with the Open Static Maps API

    As many of you are aware, MapQuest has had a Static Maps API Service using licensed data for quite some time now. So, it's only fair that we now provide the same service using open data for the open community! What does the API do then? The Open Static Map Service enables the user to create beautiful static map images generated via an HTTP request for their website or publication. The simplest example requires only a few key parameters:
    • key - your MapQuest AppKey
    • center - center of map in latitude/longitude
    • size - size of map in pixels
    • zoom - zoom level of map
    For example, http://open.mapquestapi.com/staticmap/v4/getmap?key=Kmjtd%7Cluu7n162n1%2C22%3Do5-h61wh&size=600,200&zoom=15&center=41.862648,-87.615549 will result in the following image: But what if you need to plot POI locations? On satellite imagery? Easy. http://open.mapquestapi.com/staticmap/v4/getmap?key=48RTFOpswl9ML0bHgxx0bcIl0piyoFr3&size=600,200&zoom=3¢er=35.60395,-98.906248&type=sat&pois=yellow_1,33.748867,-84.388185,0,0|yellow_1,29.763066,-95.363351,0,0 How about a route? No problem. http://open.mapquestapi.com/staticmap/v4/getmap?key=48RTFOpswl9ML0bHgxx0bcIl0piyoFr3&size=600,200&zoom=14&shapeformat=cmp¢er=40.770021,-73.984003&shape=y_zwFjsrbMxWkz@??}DoC??a@}CyBt@ySiN??fDeP&scenter=40.77069,-73.992378&ecenter=40.770935,-73.97644 Multiple features, plus an automatic 'declutter' option? You got it! http://open.mapquestapi.com/staticmap/v4/getmap?key=48RTFOpswl9ML0bHgxx0bcIl0piyoFr3&declutter=true&size=600,200¢er=40.720212,-74.066627&zoom=5&pois=yellow_1,40.037661,-76.305977,0,0|orange_1,41.761715,-72.686376,0,0|orange_1,41.394906,-73.454489,0,0|orange_1,41.380665,-73.420447,0,0 Now that you've seen a few examples, don't be shy! Get creative by dynamically producing static maps for your website, adding your own custom icons, and more! Visit the Open Static Map Developer's Guide to learn about additional request parameters and options available. Or if you're just a beginner, perhaps you'll want to head straight to the Open Static Map Wizard. As always, find us on Twitter @MapQuestTech or the Developer Network to provide feedback!
  • Transit Routes Now Available for the (Open) Directions API

    New data, new services, this is just how we roll! With the latest addition of transit data, developers can now incorporate transit routing into their own mapping application. Using this service is really no different than directly calling for our driving, walking, or biking directions. Simply changing the routeType to 'multimodal' will prompt MapQuest to begin searching for an optimal route combining pedestrian routes with transit routes. Because transit data is also time-sensitive, some key parameters outlined on Date/Time Routing Options have been added and are required for the service to return a response. Seen below is an example of a transit route request using the Metro from the oft forgotten about and climbable (!!) Albert Einstein Memorial to the Verizon Center in Washington, DC. http://open.mapquestapi.com/directions/v1/route?key=YOUR-KEY-HERE&routeType=multimodal&timeType=1&outFormat=xml&from=38.892551,-77.048244&to=38.898137,-77.020928 As documented on the Date/Time Routing Options page, when the value of timeType is set to 1, the current time is sent to generate a transit route. Other options include choosing a certain day of the week and time, or selecting a specific date and time -- all of which can have a major impact on the transit route returned. Don't forget to also check out the updated Advanced Routing Sample and give our API a test-drive! [caption id="attachment_1276" align="aligncenter" width="600" caption="Partial screenshot of the Advanced Routing Sample using the Open Directions API"][/caption] Currently, transit directions are available for six major metropolitan areas: New York, Chicago, Washington, D.C., Boston, Philadelphia and San Francisco in both our Directions API and the Open Directions API. Please feel free to provide feedback on our forums or @MapQuestTech while we look to increase the amount of transit data available and improve the service itself. Happy Transit Commuting!
  • Interoperable Location Data

    SXSW Interactive has traditionally served not just to launch new products, but also as a collaborative brain trust where the dialogue on stage continues into Austin’s streets. Along with some esteemed industry friends, I had the pleasure of participating on a SXSW panel last month covering the topic: "Interoperable Location Data: Matching Your Places with My Places."
    Tyler Bell
    Director of Product: Factual
    Kate Chapman
    Developer Advocate: GeoIQ
    Adam DuVander
    Executive Editor: ProgrammableWeb
    Scott Raymond
    Co-founder and CTO: Gowalla

    The Issue

    There's an ever-increasing amount of applications using location data. Some are licensing data, some are using open-source data, and some are building datasets from user-generated records. Unfortunately, there's no easy way to match records between them. For instance, latitude and longitude may have been captured differently, there might be no address or only a partial address, or the common name of the business (Jo's) might be offered instead of the formal name (Jo's Coffee Downtown).

    How do we make it easy for a developer and a machine to know that we're both talking about the same specific place, especially when that place can be a park bench, taco truck, or the Starbuck's that's on this side of the street (not that side)?

    How also do we make this system open and flexible so developers aren't locked into yet another black-box solution, since the ability to own and manage the data attributes is one of the major reasons organizations build their own datasets to begin with.

    Here's a good example of how and where location data in the sponsored link of the iOS Maps app differs from the actual place record for the Michelangelo Hotel in New York.

    These types of disconnects are most apparent in mobile operating systems. Independent developers make location apps, but these apps don’t necessary provide a clean way to move a place context from the app to the operating system, then to another app.


    As another example, I’ve pulled the below foursquare check in, displayed in the Twitter app, and finally pulled up on the iOS Maps app.

    • What sent me to this place
    • The name of the place
    • Additional useful details of the location from:
      • foursquare: Whose check in did I follow? Who's the mayor? How many people are there now?
      • Twitter: The referring tweet, other tweets nearby, references to the conversation thread.
      • Additional location attributes such as the phone number or website link.

    Continuing the Conversation

    Last summer, MapQuest started socializing the concept of the location ID pivot table to a number of organizations and start-ups. The basic concept is that the table will take a location ID from one organization and return the matching location ID from the organization you want a match from.

    So in the example above, the foursquare venue ID would be passed to Twitter; Twitter could then access other information about the venue with confidence that both applications are referring to the same place. Next, Twitter would pass the foursquare venue ID, and a Twitter Place ID, to the iOS Maps app. Lastly, the iOS app could then present the user with detailed information about the location and allow for directions with assurance of accuracy.

    Got it? A picture might help.

    Basic POI information is becoming more commoditized. The value is now weighted higher in the special characteristics of a place, not its physical location in the world. There's nothing proprietary and no "secret sauce" to the information that one of MapQuest’s offices is located at 300 Granite Run Drive, Lancaster, PA. And, the same applies for your favorite pizza place, least favorite dentist or the Empire State Building.

    If providers of place data allowed their location IDs and basic location information to be used as part of place-matching efforts, it’s my opinion (as shared during the SXSW panel), that place-data providers and other services could begin more easily aligning the same places across systems. As a developer, wouldn't it be great to query a data set like MapQuest's and get the IDs to that same place represented in other datasets like Gowalla, Yelp and Facebook as well?

    So Many Questions, So Much Opportunity

    My hope is that the conversation continues from here. There are so many opportunities for growth and collaboration, and below are just a few recommendations:

    How can you help?

    Data Service Providers:

    • Consider either:
      • Providing location/venue/spot/POI IDs for other services in the API responses to your own locations
      • Include flexibility in your terms-of-use to allow developers to use, share, and store your location IDs and align them with location IDs from other services using the basic geographic attributes of the record (lat/long., address, business name, etc.).

    Developers:

    • Ask your data and API providers to:
      • Provide Interoperable Location IDs
      • Allow you to build easy ways to associate yourself
      • Allow their IDs and basic geographic attributes to be freely published
    • Ask them to allow you to build easy ways to make associations available yourself
    • Ask them to allow their IDs and basic geography attributes to be freely published.

    My fellow panelists and I agreed to make an effort to create more visibility around this important topic. Kate has summarized her thoughts over on the GeoIQ blog in a post called "SXSW and Interoperable Location Data." You can also check out our panel in its entirety on the SXSW page for the "Interoperable Location Data" panel.

  • Xapi, NPI and Broken Polygon Report = new tools!

    We're very pleased to announce that more tools have been released today for the Open Developer Community! Here's the cool new stuff: - Xapi (pronounced 'zappy'): This a read-only OpenStreetMap (OSM) extended API providing enhanced search and querying capability for nodes, ways, and relations where the results are returned in XML format. This Xapi tool will query the OSM data by searching on tags using name=value pairs (such as amenity=pub) or by bounding box of the area of interest or both. Here's a sample URL that searches on pubs in the greater Denver area (click link to see XML output):
    [caption id="" align="aligncenter" width="498" caption="Xapi Simplified GUI"][/caption]
    We're using the Java Xapi version that Ian Dees developed earlier this year; our simplified UI is based on Emacsen's design currently used on OSM. The MapQuest page on Github is full of cool stuff, too: Xapi, Mapnik map style, Potlatch 2 Resources and more! - Nominatim Pre-indexed Data Service (NPI) is a tool for developers that can export pre-indexed OSM data hosted on the MapQuest servers as an alternate database location. The Nominatim Planet data file is quite large - in the range of 15-20 GB or so - but using the MapQuest Nominatim pre-indexed data service allows developers to have their own instance of Nominatim for running complex queries on their own servers. Having a pre-indexed file to start your Nominatim install will also speed up the installation process by as much as 75 - 90 percent! Any developer can take this pre-indexed file, start up their own Nominatim installation, hook it up to our pre-indexed updates to get an OSM Planet Nominatim version of "Minutely Mapnik" for search/geocodes (instead of map updates) with updates provided approximately every 5 minutes. Since this new system does all the indexing for you - it also reduces the CPU horsepower needed to run Nominatim in your development environment (i.e.: at home). Installation instructions are found here. - Broken Polygon Report for Nominatim: When importing OpenStreetMap (OSM) data, Nominatim validates OSM polygons and then will discard polygons that it considers 'broken' during the import process. These 'broken' polygons could be where the interior of a multipolygon is disconnected or, where a polygon intersects itself. We've created a report of these broken polygons that provides a click-and-view list that any user can see and correct the polygon errors in JOSM or Potlatch 2. [caption id="" align="aligncenter" width="538" caption="Sample of a self-intersection: a broken polygon that needs fixing."][/caption] Feel free to let us know how these tools work for you - questions and comments are always welcome in our Open forums or on Twitter @MapQuestTech!
  • Flash Maps API: Now in Mercator!

    Yes, it's true, the latest version of our Flash Maps API is in Mercator Projection! We've also added a number of new features and made other improvements with Version 7.0.0, some of which can be found in our official release notes and summarized below.

    Mercator Projection

    Online map projections can go unnoticed for many but also be the subject of great debate for others. We hope this switch proves to be more user-friendly, especially for those dealing with multiple data sources and finding that the standard for online mapping has increasingly shifted towards the more popular Mercator Projection. Developers will also be glad to know it has zero impact on their existing applications unless custom tilelayers were being utilized, in which case the tilelayer will first need to be reprojected. Below is an example using the new Flash Maps API in the Mercator Projection. It is shown demonstrating the retrieval of multiple GeoRSS feeds and the integration of video playback, and best of all, the source code has been made available for download! [caption id="attachment_1210" align="aligncenter" width="500" caption="Flash Maps API: CNN iReport Demo"][/caption]

    Higher Zoom Levels

    In addition to making the switch to Mercator, we've reduced scale limitations by now supporting zoom levels 2-18. This allows for the development of larger scale maps which show greater detail at the street level and can prove to be the optimal zoom level for your next location-based application.

    Updated Design

    With each release, we also try to mimic the robust features and design elements found on the MapQuest.com site and make it available for developers. As seen above with the CNN iReport example and others found in Examples & Tutorials on the Developer Network, the zoom controller and auto-generated POIs have been further refined to reflect the look and feel of MapQuest. You can always find more documentation and source code on the Developer Network so please feel free to browse the site. All questions and feedback can be directed at @MapQuestTech on Twitter or be posted on the Flash Maps API Forums.
  • MapQuest at SXSW Preview

    We're loading up all the gear to make our annual trip to Austin, Texas for SXSW Interactive. This year will be bigger than ever and I wanted to recap all of our plans and happenings so you can make sure you don't miss a thing. If you're busy printing out your directions and have your sights set on BBQ, this post is for you: [caption id="" align="alignleft" width="250" caption="MapQuest's Street Team Bikes"]MapQuest's Street Team Bikes[/caption] Official Mapping Sponsor of SXSW Download SXSW’s official mobile app, SXSW GO, to build your schedule, see a map of what’s going on where, and more. CruiserQuest Those crazy people riding around Austin on cruiser bikes later this week - that'll be us. We're also giving a bunch of bikes away. Track down the MapQuest street team, show us your MapQuest mobile app, and you get an entry. Check out this blog post for full details: CruiserQuest: Win a Cruiser Bike at SXSW
    BBQuest MapQuest's BBQuest: Take a Road Trip to Salt Lick BarbecueOn Sunday, March 13th, join us on our 2nd Annual BBQuest Road Trip to the famous Salt Lick Barbecue. Hop on a bus loaded with tech influencers, VCs, entrepreneurs, and a bartender, then go get some tasty BBQ. Finally, rock out with our friends Shinobi Ninja, who will be playing us off as we get you back to Austin for the evening events. MapQuest Booth If you thought our booth was crazy last year, wait until you see our set-up this year. I can't tell you about all the awesomeness (air hockey) we'll have there, but make sure you stop by the Trade Show from March 14th through the 17th. We'll be near the 4th St. entrance. In the booth, we'll be demoing our mobile applications, and showing you how you can add location data and maps to your application. So, whether you're super-coder, OpenStreetMap expert, or just need an easy-to-use tool for adding a directions link to your site, our team will be happy to chat and happy to help. Plus, we'll have happy hours in the afternoon, so we can discuss over a cold one. Das IronGeek On March 15th, MapQuest will be hosting one of the 5 challenges as part of Das IronGeek, an event that puts a set of 6 press and bloggers attending SXSW through a series of fun, technology related challenges, all intended to test their "geekiness." Speaking Gigs Also on the 15th, yours truly will be speaking on the topic of "Interoperable Location Data," along with fellow panelists: Tyler Bell from Factual, Kate Chapman from GeoCommons, Adam DuVander from ProgrammableWeb, and Scott Raymond from Gowalla. Right after that, you can hustle on over to listen to Christian Dwyer, MapQuest's fearless leader talk about "Rebranding: Tales of a New Identity," alongside AOL's VP of Marketing: Maureen Sullivan. See you in Texas Hope to see you in Austin. Travel safe and have a great time!
  • all our addresses are belong to you

    MapQuest is providing several address files that contain user-provided latitude and longitude locations across the world. Our users provided these exact locations to us so that they could be mapped correctly on our MapQuest maps. There are currently three (3) main files - one for the United States, one for Canada and one for Europe.  More information can be found on our OSM wiki page. We didn't want to just import these addresses directly into OSM, but wanted them to be available to anyone that wanted to have them.  To be clear: 1. these addresses are user provided 2. there is a high degree of ground-truth from these users 3. they WANTED to be in the data and be correctly mapped 4. we've checked with our lawyers, and yes, you can have them - UNENCUMBERED! Our good friend, Ian Dees, has written a script to convert the files listed on the MapQuest wiki page into OSM format!  Check out the code here on GitHub.  Thanks Ian, you rock! Happy mapping!
  • Joining the Open SDK: Draggable Bike Routes!

    [caption id="attachment_1138" align="alignright" width="285" caption="Chris Weaver - today's featured MapQuest Dev."][/caption] Some days it can be a difficult task to overcome writer's block and other days, like today, you're asked to write about an awesome new service and blogging comes easy. So without further ado, I present you with draggable bike routes for our new Open JavaScript SDK! The customization that drag routing on open data allows is by far superior to anything we've ever had (of course, until our next update). You'll also see below that implementing this is a snap. But first, a special thank you goes out to our Systems Architect, Chris Weaver, who has put forth a significant effort to help support the Open JavaScript SDK and the new bike routing options! Now in order to fully understand the benefits of this service, let's take a look at some of the main user concerns and what MapQuest can do to address them.

    Map is Missing Data

    Know a shortcut specific to cyclists/pedestrians? Add it to OpenStreetMap (OSM)! The new data will then be picked up by the MapQuest servers so you and everyone else will be able to drag route on the new bike path. If you need assistance with adding bike paths in OSM, be sure to check out this great tutorial over at Cyclelicous. [caption id="attachment_1113" align="aligncenter" width="500" caption="Missing shortcut (walkway) for cyclists!? Just add it!"][/caption]

    Altering the Bike Route

    If you plan on biking in Alexandria, VA, and you suddenly crave frozen custards from The Dairy Godmother (my favorite!), simply drag the route to your desired location. Both the route and POI locations are draggable and can help you with all your last minute customization needs. [caption id="attachment_1118" align="aligncenter" width="500" caption="Customizing the route by dragging it farther south."][/caption]

    Printing Out Directions

    As expected, the SDK can return a narrative of the OSM directions which can then be used as a cue sheet for your ride. If you need to customize it further by drag-routing, no problem! The directions will also get updated automatically. [caption id="attachment_1127" align="aligncenter" width="500" caption="The directions update as the route gets dragged."][/caption] Also of note is when dragging the bike route, the algorithm is smart enough to only route you on a bike friendly path. For example, trying to drag your route on an interstate or areas where bicycle access is set to false in OSM will fail. As you can see, there's really no excuse now for you to not develop a savvy MapQuest application that spits out great bike routes... ok, so maybe there's always room for improvement! We already have other bike routing features in the works so please stay tuned. Thanks to everyone who's already provided feedback and the cycling community for embracing our services! And in case you're wondering, drag routing is also available for both driving and walking directions. Just make sure to add: ribbonOptions:{draggable:true,draggablepoi:true} Simple as that!