The Power Of Location Is Changing How Business Is Done! Learn More Here!

Location Based Services

Subscribe to Location Based Services: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get Location Based Services: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

LBS Authors: Liz McMillan, RealWire News Distribution, Kevin Benedict, Shelly Palmer

Related Topics: Location Based Services

LBS: Article

Mobility, LBS, and MapPoint

LBS solutions will boost adoption of mobile/wireless solutions

Location-based services (LBS) solutions involve leveraging information about a user's location and/or presence in solutions, providing relevant information and services. Mobile/wireless technologies in LBS solutions can be very compelling, combining a mobile device with information about a user's location and powerful mapping features. Microsoft's MapPoint is a suite of products designed for use with Graphical Information System (GIS) and mapping scenarios within many application types including portal, Web, client/server, and especially mobile/wireless. Typical MapPoint Web service (MWS, formally called MapPoint .NET) functionality includes rendering maps, geo-coding an address, performing proximity searches, and getting driving directions, just to name a few examples. MapPoint technologies are especially powerful when used in LBS solutions. This article provides an introduction to LBS, explores mobile/wireless scenarios with LBS, and discusses relevant MapPoint technologies and development techniques.

LBS solutions traditionally involved a user selecting or entering some information to identify his/her location, such as a ZIP/postal code, a street address, or a city. The information is then used in an LBS solution to show relevant information and services such as nearby ATMs, restaurants, hotels, and many other points of interest (POI). This could also involve showing maps, providing distance calculations, and getting driving directions. Recently, a number of technologies have been introduced that involve the automated acquisition of a user's location (typically, a latitude and longitude position) using either traditional GPS (integrated in Pocket PCs or other mobile devices) or wireless carrier location determination (being driven by Enhanced 911 in the U.S.).

MapPoint technologies can be used for many types of mobility and LBS solution scenarios. At the simplest level, Pocket Streets (an application included in Microsoft Streets and Trips or MapPoint 2004 CD products) enables the user to view and manipulate maps on a Windows mobile device (Pocket PC or Smartphone), allowing him/her to get driving directions, view maps, etc. Pocket Street is useful, but clearly, this product is consumer-focused. The MWS and MapPoint Location Server (MLS) are two Web services-based products that are very useful. Both products provide services with SOAP interfaces designed to allow developers to leverage maps and location information in building more advanced consumer and enterprise LBS solutions.

The MWS has a number of different SOAP-based services and methods depending on the types of functionality you want in your applications. As discussed earlier, typical functionality includes map rendering (creating a map image), geo-coding (obtaining latitude/longitude information from an address or ZIP code), reverse geo-coding (retrieving an address from a latitude/longitude point), proximity searches (finding POI and services within a certain distance of a particular location), and getting driving directions (between two or more points on a map).

The MapPoint Web service has four main services:

  • Find service
  • Render service
  • Route service
  • Common service
Each of these services has specific methods and related properties for performing mapping tasks in different ways. For example, with the render service you can render maps of different sizes and types (political, terrain, road, etc.). With the latest MWS version 3.5, you can also render maps specifically for mobile devices that are smaller, but on which names and POI are larger for easy viewing. For more information about each of these services and other Web service features, you can download the MapPoint Web service SDK 3.5 from

MLS enables the automatic acquisition of a user's location based on the position of a phone-based mobile device (including simple cell phones, Pocket PC Phone Edition, Smartphones, and any other device registered on a mobile carrier network). Location determination in this scenario can be done in a number of ways, including using cell site ID, triangulation, and assisted GPS. The biggest challenge with using carrier-based position information today is that few carriers have standards-based APIs, so if you wanted to locate a mobile device on both network A and network B, you would need to write different adaptors for each carrier. This significantly complicates the solution development and increases cost.

This is where the MLS is particularly useful - it provides a common SOAP-based API and relevant adaptors for accessing supported carriers. For mobile applications, instead of having to manually enter a location, you can now just load an application, make a request to the MLS Web service (Get Positions method), and automatically load a map showing the mobile user's current location. MLS provides a service for getting location information from the mobile operator's network. MLS provides significant assistance for enterprise mobility scenarios such as intelligent dispatch, field force automation, and intelligent routing, where business value can be gained by knowing the user's location. For more information on the MapPoint Location Server version 1.0, visit

MapPoint Location Server typically resides in an enterprise network with connections to different mobile carriers and to the MapPoint Web service. MLS provides a superset of the regular MLS Web service APIs, allowing you to request the user's location. The advantage of hosting MLS in-house is that security and privacy can be more tightly controlled. Figure 1 shows a typical mobile solution architecture including a mobile user, the mobile device, network triangulation with multiple cell towers, and various servers.

To get started developing LBS solutions with the MWS and MLS, there are some simple steps. To access MWS either directly or through the MLS, you will need to sign up for a trial account; this can be done by completing the online form at mappoint/enterprise/webservice/seval.aspx. This will give you access to MWS functionality for development and testing. You will be e-mailed the logon details, which will include the WSDL locations in the MWS staging environment. The standard WSDL is and there is also a WSDL for HTTPS access. In Visual Studio, add a reference to MWS using this WSDL when adding a new Web service. Once this is completed, you can begin using the MWS features and functionality using your favorite .NET coding language, which is typically VB.NET or C#, for mobile applications. For each of the different MWS Services (Render, Route, and Find,) you need to set the servicename. Credentials to the login details we just discussed.

Listing 1 shows some of the code elements required for creating a map using the Render service in the MWS:

There are additional properties and methods that can be used to customize the look and feel of maps, define points of interest, show a route, etc. Additional mapSpec properties include map length and width, map style, font size, etc. The data source in our example uses MapPoint.NA, however, other data sources can be defined that allow your applications to be used in other countries and regions, including Western Europe, Brazil, Australia, etc. Depending on your type of application or functionality, you can return the map image as a bitmap stream or a HREF of the image. HREFs are easy if you want to display the map in a browser. Streaming the bitmap is useful if you want to add additional layers (e.g., polygons) to the map image. Also, in the MWS v3.5 Microsoft has added the properties of MapStyle to include Phone and PhoneBW, which allows you to automatically render maps for Pocket PC and Smartphone devices ranging from 101 x 80 pixels to 176 x 220 pixels.

For MLS, the methods properties are identical for the Render, Route, and Find services, however, security is handled a little differently and there are a couple of other considerations, including the use of the Location service. MLS is typically installed into an enterprise environment and requires Active Directory. So instead of using the MWS credentials directly in an application for accessing MWS functionality, you utilize the user's network credentials or a service account. This allows you to control access and provide authorization in regards to who can access information about a particular user's position. The following code shows how to access a user's position information.

PositionResults posRes = locService.GetPositions(userid)

Additionally, as part of the Location service in MLS, you are able to access information about a user's buddy list, etc. See the MLS SDK for more information.

As we have seen, MapPoint technologies, specifically the MapPoint Web service and the MapPoint Location Server, are very useful for LBS solution scenarios. LBS solutions really are the next significant wave of functionality that will boost the adoption of mobile/wireless solutions and provide very compelling consumer and enterprise scenarios.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

Most Recent Comments
John White 02/05/05 06:48:33 PM EST

This is exactly somehting that I have been trying to developew for myself. I am wondering if anyone knows how to get the cell tower id number from an HP6315 Ipaq?