e're all familiar with commerce sites that help users find the nearest store location to a specific ZIP code. Our browsers routinely cough up maps and driving directions to business meetings and holiday hotels, using services such as MSN Maps and Directions. Yet those functions barely scratch the surface of what mapping can offer consumer and business applications.
The range of map-enabled applications is limited only by imagination. Starbucks uses it, for example, to help travelers find their nearest caffeine fix. FutureDontics uses mapping to power its 1-800-DENTIST patient-dentist mapping service based on their location. SonicEagle has empowered real estate agents to help prospective home buyers identify property convenient to specific points of interest or neighborhood services. And that's only the beginning of what you can do with Microsoft's MapPoint Web Service. Asset mapping? Vehicle fleet tracking? Yes, and more.
Traditionally, the only inhibitor to a more widespread use of mapping and location technology is that applications that embed this technology can be complex to develop, as well as require considerable up-front investment to license geographic databases. Additional investment is required to either write or license the algorithms to manipulate the geographic information; the routines for those types of graphics are complex to master. Complicating the issue is the desirability of creating a shared mapping and location resource for multiple applications; while the fixed costs may not be higher, an architecture for creating a scalable, high-performance geography-aware server may be hard to develop, especially for those unfamiliar with data and the communications protocols, or uncertain as to the nature of the apps that will consume that service.
|It's easy to ask MapPoint to display a listing of all the banks, or schools, or automated teller machines near a specific street address.|
Fortunately, MapPoint Web Service offers a better way. This is a licensable service that offers access to complex geographical databases and functions, including a variety of base maps, address locators, and locations of key points of interest. It also has routines for rendering and delivering maps and performing location services that are truly platform independentyou can use them with rich-client applications, Web-based browser apps, and small form-factor devices such as handhelds and Smartphones.
Core features in the MapPoint Web Service include translating street addresses into latitude/longitude coordinates; retrieving graphical street maps based on a specific coordinate, and determining the driving distance and shortest-distance route between two points. This is based on MapPoint's huge database of 5.5 million miles of road in the Americas, and almost that many in Europe.
However, the MapPoint Web Service offers morefar more.
One of my favorite features is proximity computation. The MapPoint Web Service database stores 15 million entries of businesses. That means that it's easy to ask MapPoint to display a listing of all the banks, or schools, or automated teller machines near a specific street address. Want to go a step farther? You can augment this built-database with one of your own, so that MapPoint's server can, for example, give addresses, maps and turn-by-turn driving directions from a user's current location right to your local office or retail branch. Remember, this is all device-independent, so you can send those driving directions right down to someone's wireless handheld or Smartphone.
(To see the regional coverage, visit http://www.microsoft.com/mappoint/webservice.) The MapPoint Web Service eases the implementation of mapping applications, allowing them to be built at a reasonable cost.
Other interesting APIs and features of MapPoint Web Service include (and these are just a few examples of features added in the recent version 3.5 update):
- Find points of interest along a route, within a specified distance of the route, using "FindNearRoute."
- Filter point-of-interest entities using logical expressions.
- Sort find results based on specific entity property values.
- Render maps for small-screen devices using new phone style maps that limit color depth or render in black and white.
- Upload your own point-of-interest data programmatically using the Customer Data Web Service.
Now: Location-based Services!
In mid-March, Microsoft added a new set of functions to MapPoint Web Service called MapPoint Location Server (MLS) designed to work with mobile wireless devices. Imagine that your vice president of sales is zooming down I-40 at 7:00 p.m., and decides to stop for the night. No problem. She pulls into a rest area and fires up your intranet travel application from her Smartphone or wireless device, using either a local client or a browser interface.
Your travel app communicates with the MapPoint Web Service, which uses MapPoint Location Server Web Service to determine your VP's precise location through communication with the wireless device's network carrier using a simple method called GetPositions. Based on that location data, and MapPoint's knowledge of roads and local businesses, your app can work with your corporate-rate hotels to identifyand reservethat hotel room right on the spot. Finally, that information is relayed, with detailed driving directions, right to your VP's Smartphone. She could even have the option of controlling the entire location via voice, using speech-recognition and interactive voice response technology.
Cool, eh? And much of that complexity has already been solved by the Microsoft back-end servers, so you don't have to understand (or develop for) the special protocols involved in working with a myriad wireless carriers. You can focus on the business logic and adding business value to your application.
The uses of this technology are only bound by your imagination.
Up and Running with the MapPoint Web Service
To use the MapPoint Web Service, you'll need an access license from Microsoft. With than in hand, you can begin using the MapPoint Web Service SDK to build, test and deploy mapping and location features in your software and Web sites.
In terms of the license, you'll start with a development license, which gives your application access to Microsoft's special staging server. After you've completed and tested your application (or the new map-based functions of existing applications), it'll be time to deploy. To do that, you change the Web reference to point to the MapPoint Web Service production server. You'll also need to arrange a production license with Microsoft.
Microsoft normally offers a free 45-day trial of the staging server, which can be followed up by purchasing a deployment license for the production server. The production license requires an annual fee, plus transaction charges for using the Web service. You buy transactions in advance by the bucketful; when you use up all the transactions in your bucket, you pay to fill it up again.
That's not a bad deal, but it gets better. At the present time, Microsoft is extending a special offer to its MSDN subscribers: a full year of access to the staging server, as well as one year of access to the production server, including a starter bucket of 50,000 transactions, at no cost. That's an average of more than 130 transactions per daymore than sufficient to gauge the popularity and business value of applications that use this service, or of adding map-based functionality to existing apps or Web sites. Once that year is over, then you can decide whether to discontinue use of the MapPoint Web Service or arrange a deployment license with Microsoft.
Web Services and the SDK
Sound simple? It really is, and not just the business benefits and cost structure. The SDK itself, which we'll be covering in a future article, makes coding map-based and location-based applications easy because the MapPoint Web Service is all based on industry standards. There is no charge to download and install the SDK itself.
The greatest strength of the Microsoft offering is its use of SOAP-based Web services for enabling communication between your application and the MapPoint Web Service server. Web services are a platform-independent protocol that leans particularly heavily on two standards: XML, for rich data exchange that includes metadata; and SOAP, the Simple Object Access Protocol, for invoking what are essentially remote procedure calls and passing arguments and parameters between the Web service and the application.
The use of industry-standard XML and SOAP also make the MapPoint Web Service completely platform-neutral, both in terms of tools and application deployment platforms. While Microsoft generally recommends the use of Visual Studio .NET for development, and Windows Server 2003 and Windows XP for deployment, developers and administrators can use any Web services-compliant tool, including J2EE 1.4-based server apps using the Apache Axis tool, J2SE-based clients, or even non-managed C/C++ code running on Linux using frameworks like Rogue Wave's LEIF (www.roguewave.com).