Multimap logo Multimap XML Storefinder Version 3.0 Implementation Guidelines / Software Development Kit (SDK)

Introduction

Who should read this document?

This document is for programmers, web developers, project managers and other IT personnel who are implementing Multimap's XML Storefinder service.

Assumptions

This document explains how to set up and use Multimap's XML Storefinder service; it assumes that you have a good working knowledge of XML, DTDs, HTTP, (D)HTML and are familiar with the basic features and scope of Multimap's XML Storefinder service.

We assume you have a Multimap service client account for your XML Storefinder service. If you do not, please contact your Multimap account manager or the Multimap Sales team for your account information, or free trial account and password.

Scope of document

This document covers the mechanics of Multimap's XML Storefinder service, parameters required to invoke Multimap applications, examples and descriptions of the structure of the XML documents used, HTTP requests to XML Storefinder and Document Type Definitions (DTDs). This document also provides guidelines on how to incorporate Multimap's services into your own website. Please note that we do not suggest how to design your own web pages.

Copyright

Please note that the maps and data used to provide Multimap services represent copyrighted information, which is owned by our data partners. Do not copy, store, cache, or manipulate in any way any of the maps generated by Multimap services. Any violation of this instruction could result in the cancellation of your service.

Please ensure that every web page that you use to provide a Multimap service for your users maintains a link to Multimap's Terms and Conditions of Use of map images and data.

Limits on geocoded data

Please note you may use geocoding provided by Multimap only as part of a Multimap service. If you use the geocoded information for any application other than Multimap's, additional charges apply. The fee charged is based on the data used and the number of addresses geocoded. This limitation is necessary owing to the contractual requirements of our data partners.

If you have a Multimap service that includes records for stores located in the People's Republic of China (PRC) that have been geocoded to street level, please see Multimap's Client Zone documentation.

Terminology


Technical Overview

What is XML Storefinder?

XML Storefinder is a complete geographical 'Where's my nearest?' search and map service that is available in many countries and in multiple languages. This service lets you integrate data from your company's own database of stores on a web page where your visitors can search for their location by postal (or ZIP) code or place name and view the nearest or most appropriate stores (outlets or dealers) as icons on a map.

How XML Storefinder works

This is a diagrammatic representation of your user's interaction with XML Storefinder:

How XML Storefinder works

Typical case

The XML Storefinder service is made up of two HTTP requests. The first is to places.cgi which is the place name look-up request, and the second is browse.cgi which shows results on a map.

Typically, a user enters a postal code or address to search for the nearest store and this generates a request to places.cgi. On receipt of this request by places.cgi, Multimap responds with the first XML document MultimapPlacesPresentation (conforming to MultimapPlacesPresentation DTD). Please see the section on Invoking Geographic Searches (places.cgi) for a full description of how this works and how to use the request to invoke places.cgi.

For the Multimap software to return a list of stores with a map, the places.cgi request must contain information that can be geocoded. If the request contains enough geographic information for the Multimap software to geocode, it returns either one unique or between 1 and 15 possible stores. Please note that Multimap can configure XML Storefinder to return a different number of stores for individual customers, if required. Please contact your Multimap account manager for details.

The MultimapPlacesPresentation document that is returned then contains a prepared HTTP request for your systems to use to invoke browse.cgi.

A request is made to browse.cgi using one of these prepared URLs and our second XML document, MultimapPresentation (conforming to the MultimapPresentation DTD) responds. For an illustration of this typically successful case, please see the section on a Typical case diagram and, for full details of how to invoke browse.cgi, the section on Invoking Display Results (browse.cgi).

If the request to places.cgi does not contain enough information for the Multimap software to return a geocoded result, then the first XML document returned (MultimapPlacesPresentation), will contain error codes. These should be communicated as error messages to the user to prompt them for more address information which they can resubmit in a fresh request to places.cgi.

Typical case diagram

This diagram shows the request response cycle that occurs in a typical case of a user searching on a place name or postal code to find their nearest store and achieving 1 to 15 possible results.

Typical case diagram

You need not supply a response to the user if the MultimapPlacesPresentation XML document contains only one result. This means that the user has provided enough address information to resolve to a single unique location, so you should invoke browse.cgi directly. In the case of single matches on places.cgi, you can automate a redirection to browse.cgi if required. To automatically redirect your users to browse.cgi when places.cgi returns a single result, please contact the Multimap Customer Support team who can set this up for you.

How Client Zone works

For details of Multimap's Client Zone extranet portal, please see Multimap's Client Zone documentation.

How geocoding works

When geocoding addresses, Multimap recognizes:

Where no town is found, a town with a name that sounds similar is offered as an alternative. Also, addresses are geocoded to street and town level.

Street-level geocoding

United Kingdom

The success of UK address geocoding depends on the structure of your table of addresses. The information required for geocoding to street level are street, town, postcode, state (where applicable) and the country (which is mandatory).

Firstly, we try to match the full postcode in the pc field against the most up-to-date postcode database supplied by Ordnance Survey. Postcode matches produce the best geocoded result in the UK. If the postcode is not matched, we use the street and town, if they exist and are in your table of addresses. If building numbers are supplied along with street name, we use the numbers to locate the building as precisely as possible within the correct street segment.

Countries without states

Geocoding of addresses in countries without states can be accurate to the segment of the street on which the address is located. In certain areas, where we may not be able to geocode to the street segment, we geocode to a nominal street midpoint.

Town-level geocoding

In countries other than those listed in the section on Geographic coverage, we geocode to town level. The fields required for geocoding are town and country. For example, if you have an address in Nairobi, Kenya, our geocoding tools assign the record the coordinates of the nominal center of that city.

When you invoke the MultimapPlacesPresentation document for a country where we do not provide street-level maps, it does not act on the addr2 and pc parameters but returns the coordinates of the nominal center of the town instead. For a link to a list of country codes for these countries, please see the section on Geographic coverage.

Multiple geocoding results

If a search finds several possibilities that it is unable to resolve to a single address, the address details are recorded in the Geocode Log file. An example of a log file entry is:

id: 1130922 Via Bianchini 15, 00142, Rome, IT.  Found alternative 1: VIA FRANCESCO BIANCHINI, 00142, ROMA, lon=12.48353, lat=41.82912
id: 1130922 Via Bianchini 15, 00142, Rome, IT. Found alternative 2: VIA MARIO BIANCHINI, 00142, ROMA, lon=12.50036, lat=41.83466
id: 1130922 Via Bianchini 15, 00142, Rome, IT. Found alternative 3: VIA EMILIO BIANCHI, 00142, ROMA, lon=12.48352, lat=41.82897

In this case it is not clear whether "Via Bianchini" refers to "Via Francesco Bianchini", "Via Mario Bianchini" or "Via Emilio Bianchi" so the three alternatives are written to the log file. To ensure that only one version of the address is geocoded, modify the street name in your address table to reflect the correct choice, upload the data file once more and geocode it again. Optionally, the coordinates of the first of several matches may be written to your Storefinder table, with the alternatives being written to the log file. Please ask your Multimap account manager if you would like to take advantage of this option.

Geographic coverage

Multimap's searching is currently accurate to street level in the following countries:

Austria Greece (Athens) Puerto Rico
Belgium Ireland (Portmarnock, Skerries, Sligo, Swords, Tralee, Wexford) Singapore
China (Hong Kong, Shanghai and Shenyang) Italy Spain
Czech Republic Luxembourg Sweden
Denmark Netherlands Switzerland
Finland New Zealand Turkey (Istanbul, Ankara and coastal or tourist areas)
France Norway United Kingdom
Germany Portugal

Street maps are also available for Australia, Canada and the United States. Multimap does not currently offer street-level maps, or postal-code-level searching, for the Channel Islands, the Isle of Man or the Republic of Ireland.

For a list of countries for which maps are available, including those with states and provinces, please see Multimap's online documentation on Countries and States.

Service enhancements

You can add more features to XML Storefinder to make it even more interactive, automated or compatible with your needs:

Shared Record CheckingIf you want to enlist the assistance of local experts to check store records, you can use Shared Record Checking. Shared Record Checking automates the process of sending store details to recipients for verification.
Automate the upload of store addresses with XML Data UploadIf you want to automate the upload of store addresses and data to your table of addresses, or you require a high volume or high frequency of updates to your XML Storefinder service, you can use XML Data Upload. This service enables Multimap to receive information to update your table of addresses in an XML document.
Integrate travel directionsBy combining XML Storefinder with a Multimap mobile service, you can send your store details and maps to mobile phones. For details, please see the section on Integrating Multimap mobile services with XML Storefinder.
Multimap2MobileBy combining Multimap2Mobile with an existing Multimap service, you can send maps and store details to a mobile phone (cell phone).
Storefinder4MobileBy combining Storefinder4Mobile with an existing Multimap service or with the Multimap API, you can send store details and maps to a mobile phone (cell phone). Multimap's Storefinder service is a 'Where's my nearest?' search service that allows users to enter a postal code, address or place name to view their nearest stores or outlets as icons on a map.
Securing your serviceIf your data is sensitive and needs to be encrypted, Multimap offers a secure version of the XML Storefinder service that is quick to implement.

Implementation stages

There are two stages in setting up XML Storefinder:


Invoking Geographic Searches (places.cgi)

The Technical Overview section described how a typical user interaction involved two requests to Multimap services - places.cgi and browse.cgi. This section describes the first of these, places.cgi, which finds a location.

Use HTTP requests to invoke Multimap's geographic searching program, places.cgi.

Geographic search requests enable you to specify a location in terms of the parts of its address (for example, street, town and postal code).

Invoke places.cgi by requesting http://classic.multimap.com/clients/places.cgi and using all mandatory parameters and as many optional parameters as possible.

If you have subscribed to the Secure version of the service, replace http in the URL with https, to make a request to https://classic.multimap.com/clients/places.cgi.

If, for any reason, your XML implementation is not configured for the domain classic.multimap.com, your HTTP client library must be configured to follow 301 Permanent Redirects. If you are making HTTP POST requests, you must ensure that your implementation refers to classic.multimap.com, since your HTTP client library will not follow redirects.

Use all these parameters:

Mandatory places.cgi request parameters

NameDescriptionExample
clientYour Multimap service client nameclient=[clientname]
dbUse a two-digit upper-case International Organization for Standardization (ISO) country code to specify the country in which the geographic search is to be conducted (for example, "US", "GB" or "DE").

The ISO code for the United Kingdom and Great Britain is "GB". We strongly recommend that you only specify db=GB as the ISO code for all UK searches. (If you specify "UK", the db parameter works for town searches but not for postcode searches.)

If you invoke the MultimapPlacesPresentation for a country other than one of those listed in the section on Geographic coverage, the Multimap application will not act on the addr2 and pc parameters. It will return the coordinates of the nominal center of the town.

If you were to omit this mandatory parameter, coverage would default to Great Britain only. Please see the section on Geographic coverage for a link to a full list of country codes.
db=DE

Use any of these parameters where you have the required information:

Optional geographic search request parameters

NameDescriptionExample
addr2Specify the street address with an optional building number and building name. addr2=939+Boylston+Street
addr3Specify the town or city.
Our systems provide similar or near matches for users' place-name misspellings using:
  • local names, for example Wien (instead of Vienna) and Roma (instead of Rome); and
  • international names, for example Vienna (for Wien) and Rome (for Roma).
addr3=boston
pcSpecify a postal code.pc=02115
stateFor some countries, you can use a code or name to specify a state, province or territory.
Please see the section on Geographic coverage for a link to a list of all countries that this covers and lists of abbreviation codes.
state=ACT
(Australian Capital Territory)

state=AB
(Alberta, Canada)

state=MA
(Massachusetts, United States)
langIf you have combined your XML Storefinder with another Multimap service, this parameter controls the language in which Multimap returns information via that service. For details, please see the section on Service enhancements. lang=fr

Please note that all country and state code values must be in upper case.

Making geographic search requests

This section contains some examples of geographic search requests to places.cgi.

Street-level searching

Using Multimap's geographic searching capabilities, you can enable users to search to street level in over 50 countries. For a link to a list of these countries, please see the section on Geographic coverage. This list is not exhaustive and is being continually updated as new countries are added. If required, please contact your Multimap account manager for the latest update or if you discover that you are not able to search for streets in a country. Your account may need to be activated to access that country.

MultimapPresentation XML Document Structure (output of browse.cgi)

Multimap returns the output of requests to our geographic search application places.cgi in our geographic search XML document MultimapPlacesPresentation. MultimapPlacesPresentation contains the object placesResults. This shows the geographic search result set of places.cgi.

Architecture of placesResults object

This diagram shows the structure of the placesResults object:

Architecture of placesResults object


Example MultimapPlacesPresentation document

The following MultimapPlacesPresentation XML document contains the response to a request for stores, assets or attractions that contains enough address information to be geocoded, but is not specific enough to produce a unique result.

The request was made by constructing this URL:

http://classic.multimap.com/clients/places.cgi?client=[clientname]&db=DE&addr3=berlin

The example shows that "Berlin" was the town parameter. Since "Berlin" matches four places in Multimap's German databases of towns and their locations, the browse.cgi URLs are returned as two prepared links.

<?xml version="1.0" encoding="iso-8859-1" ?> 
<!DOCTYPE MultimapPlacesPresentation (View Source for full doctype...)>
<MultimapPlacesPresentation version="2.0" client="[clientname]">
<placesResults rows="2" searchresultcode="MMTXT_SEARCH_XROWS">
<place id="1">
<placeName>Berlin, Mitte, 10178</placeName> 
<browseURL>browse.cgi?GridE=13.41189&GridN=52.52378&client=[clientname]
&lon=13.41189&lat=52.52378&place=Berlin,+Mitte,+10178&db=DE&local=&type=
&start=&limit=&overviewmap=&scale=50000</browseURL>
</place>
<place id="2">
<placeName>Berlin, Seedorf, 23823</placeName>
<browseURL>browse.cgi?GridE=10.44789&GridN=54.03625&client=[clientname]
&lon=10.44789&lat=54.03625&place=Berlin,+Seedorf,+23823&db=DE&local=
&type=&start=&limit=&overviewmap=&scale=50000</browseURL> 
</place>
</placesResults>
</MultimapPlacesPresentation>

Notes on MultimapPlacesPresentation code
CodeNotes
<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE MultimapPlacesPresentation (View Source for full doctype...)>
The XML declaration contains a reference to the MultimapPlacesPresentation DTD, which is hosted by Multimap at:
http://classic.multimap.com/dtd/
MultimapPlacesPresentation_2.0.dtd
<MultimapPlacesPresentation version="2.0" client="[clientname]">The root element shows the version of MultimapPlacesPresentation used by you, and the service client name provided by your Multimap account manager.
You can use this DTD to validate the documents returned by Multimap.
<placesResults rows="2" searchresultcode="MMTXT_SEARCH_XROWS">The placesResults element only ever occurs once within the document, but it can contain up to fifteen results with place child elements.
The rows attribute states the number of place results returned in response to a particular geographic search (four in this example).
The searchresultcode attribute provides information on the geographic search result. In this case MMTXT_SEARCH_XROWS means that one or more places have been found.
(For a full list of codes and their meanings, see the section on Search result codes.)
<place id="1">The two place elements contain sequentially-numbered id attributes and placeName and browseURL child elements which are used to describe each place element.
<placeName />
<browseURL>browse.cgi?GridE=13.41189
&GridN=52.52378&client=[clientname]
&lon=13.41189&lat=52.52378
&place=BERLIN,+MITTE,+10178&db=DE
&local=&type=&start=&limit=&overviewmap= &scale=50000
</browseURL>
The placeName element contains the textual place name of a place element (Berlin, as shown in the above example). The browseURL element contains a hyperlink that invokes browse.cgi on request. The query string returns a map that centers on the coordinates of the search result.

Please see the section on Making basic map requests for the parameters for browse.cgi requests.


Search result codes

It is possible that the search terms provided by the user may not match or be found in Multimap's geographic database. In such situations, Multimap returns an error in the MultimapPlacesPresentation XML document, which you can use to direct the user to refine the search in ways more likely to result in good matches.

XML Storefinder gives you complete control over how you present Storefinder to your users and this includes how you present error messages to them. As a starting point, you may like to use the suggested text in this list of searchresultcode values. The searchresultcode contains information that is principally for application reference:

Code ValueMeaningSuggested Error Message
MMTXT_SEARCH_POSTCODE_FOUNDPostal code has been found.(No error message required )
MMTXT_SEARCH_POSTCODE_TOO_LONGPostal code too long."The postal code you have entered is too long. Please verify it and try again."
MMTXT_SEARCH_POSTCODE_TOO_SHORTPostal code too short."The postal code you have entered is too short. Please verify it and try again."
MMTXT_SEARCH_POSTCODE_NOT_RECOGNISEDPostal code not recognized."We do not recognize the postal code that you have entered. Please verify it and try again."
MMTXT_SEARCH_ERROR_DB_FAILUREDatabase failure during search lookup."Sorry, we couldn't complete your request, please try again later."
MMTXT_SEARCH_NOROWSNo matching names or places found."Your search returned no matching results. Please try again."
MMTXT_SEARCH_15ROWSFound more than 15 places."Your search does not return a close enough match. Please verify what you have entered and try again, or select from the list."
MMTXT_SEARCH_SL_15ROWSNo exact matches, but more than 15 similar-sounding places found."Your search does not return a close enough match. Please verify what you have entered and try again, or select from the list."
MMTXT_SEARCH_XROWSFound one or more places (see rows attribute for actual number)."Please choose your preferred store, asset or attraction from the list below."
MMTXT_SEARCH_SL_XROWSNo exact matches, but one or more similar-sounding places (see rows attribute for actual number) found."Please choose your preferred store, asset or attraction from the list below."
MMTXT_USSEARCH_NEEDMORE
(US specific searches only)
Street searches require inclusion of a city, ZIP code or state."Please enter a city, ZIP code or state name with your search."

Invoking Display Results (browse.cgi)

The second part of a typical use case takes the geocoded location and uses that as the center point for a spatial search for the nearest stores in your database. Use HTTP requests to execute Multimap's Display Results program, browse.cgi.

The XML document that is output by places.cgi, which is described in the section on MultimapPlacesPresentation XML document structure (output of places.cgi), provides preformed browse URLs. You can submit these browse.cgi requests directly to produce a page of results or you can modify them with the parameters listed in the section on Making basic map requests.

Invoke browse.cgi by directing requests to http://classic.multimap.com/clients/browse.cgi and including the relevant parameters from this section.

Making basic map requests

To invoke browse.cgi, include all mandatory parameters in requests, as provided in the MultimapPlacesPresentation XML document:

Mandatory browse.cgi Parameters
NameDescriptionExample
clientThis is the service client name allocated to you by your Multimap account manager.client=[clientname]
width
height
These parameters define the dimensions of the map image in pixels and can be any integer between 200 and 900.
Please note that 200 pixels is the minimum map width; a map any smaller than this cannot clearly display the copyright message that we are legally required to include.
width=500
height=300
scaleThis specifies as an integer the scale at which to draw a map.
Please see Multimap's documentation on Map Scales for a full list of permissible map scale values for Multimap products.
Some countries are not available at all scales. Please check with your Multimap account manager if you find you are unable to access maps at the scale you require.
scale=25000
lon
lat
Every request must have a pair of coordinates that act as the center of the requested map.lon=-0.1959
lat=51.4572

MultimapPresentation XML document structure (output of browse.cgi)

Multimap delivers its browse.cgi searching functionality in a Multimap XML document called MultimapPresentation.

MultimapPresentation contains the two main objects within the body of the root element:


Architecture of mapData object

This diagram shows the structure of the mapData object:

mapData object

Architecture of locationData object

This diagram shows the structure of the locationData object:

locationData object


Example MultimapPresentation document

To obtain the example MultimapPresentation XML document:

  1. Set up the list of museums provided in the separate document Geocoding and Data Management in Client Zone: Implementation Guidelines / Software Development Kit (SDK).
  2. Request a MultimapPlacesPresentation XML document containing geocoded details for the town of Wakefield, Great Britain. The URL for that document is:

    http://classic.multimap.com/clients/places.cgi?client=[clientname]&db=GB&addr3=wakefield
  3. From <browseUrl>, obtain the following request for a map of Wakefield and list of the nearest attractions to Wakefield, and use it to generate the example MultimapPresentation XML document:

    http://classic.multimap.com/clients/browse.cgi?GridE=-1.50410&GridN=53.68420&client=[clientname]
    &lon=-1.50410&lat=53.68420&place=Wakefield,West+Yorkshire&db=clientgaz &local=&type=&start=&limit=&overviewmap=&scale=100000

For full details and an explanation of the construction of the HTTP request for the example document, please see the section on Invoking Display Results (browse.cgi).

Please note that the plus signs (+) signify collapsed location elements in the MultimapPlacesPresentation XML document:

<?xml version="1.0" encoding="iso-8859-1" ?> 
<!DOCTYPE MultimapPresentation (View Source for full doctype...)> 
<MultimapPresentation version="2.0" client="[clientname]">
<mapData name="main">
<imageUrl type="gif" width="500" height="300">http://classic.multimap.com/clients/gif.cgi?&client=[clientname]
&file=b6X1760Y1660S100W500H300.gif&units=&lang=
&cookie=2005081595059507962</imageUrl> 
<mapScales current="100000">
<validScale>5000</validScale> 
<validScale>10000</validScale> 
<validScale>25000</validScale> 
<validScale>50000</validScale> 
<validScale>100000</validScale> 
<validScale>200000</validScale> 
<validScale>500000</validScale> 
<validScale>1000000</validScale> 
<validScale>2000000</validScale> 
<validScale>4000000</validScale> 
<validScale>10000000</validScale> 
<validScale>20000000</validScale> 
<validScale>40000000</validScale> 
</mapScales>
<mapExtent system="gb" units="m" xmin="433422.09225259" xmax="446579.09225259" ymin="411053.257897711" 
ymax="418947.257897711" /> <centrePoint> <coordinate system="gb" units="m" x="440000.09225259" y="415000.257897711" /> </centrePoint> <circlePoint> <pinPosition visibility="visible" xpix="252" ypix="41" /> <coordinate system="gb" units="m" x="440494.09225259" y="417438.257897711" /> </circlePoint> <copyrightInfo> <locationPoint> <pinPosition visibility="hidden" xpix="" ypix="" /> <coordinate system="gb" units="m" x="" y="" /> </locationPoint> </location> </locationData> </MultimapPresentation>

Notes on the MultimapPresentation document code

mapData object
CodeNotes
<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE MultimapPresentation (View Source for full doctype...)>
The XML declaration contains a reference to the MultimapPresentation DTD, which is hosted by Multimap at:
http://classic.multimap.com/dtd/MultimapPresentation_2.0.dtd
<MultimapPresentation version="2.0" client="[clientname]">The root element shows the version of MultimapPresentation used by your XML Storefinder and your service client name.
<mapData name="main">One mapData object occurs for each map within the document.
Although it is usual to have only one map per document, you can show more than one map if you wish. You can use the name attribute to distinguish this map uniquely from others. Please discuss this with your Multimap account manager, if required.
<imageUrl type="gif" width="500" height="300"> http://classic.multimap.com/clients/gif.cgi? &client=[clientname] &file=b6X1760Y1660S100W500H300.gif&units= &lang=&cookie=2005081595059507962 </imageUrl> The imageUrl element contains the URL of the map image hosted on Multimap servers.
The width and height attributes show the dimensions of the map.
The type attribute shows the format specified in the imageURL element which is currently "gif".
<mapScales current="100000">
<validScale>5000</validScale>
<validScale>10000</validScale>
<validScale>25000</validScale>
<validScale>50000</validScale>
<validScale>100000</validScale>
<validScale>200000</validScale>
<validScale>500000</validScale>
<validScale>1000000</validScale>
<validScale>2000000</validScale>
<validScale>4000000</validScale>
<validScale>10000000</validScale>
<validScale>20000000</validScale>
<validScale>40000000</validScale>
</mapScales>
The mapScales element shows all available map scales for the area containing their nearest store, asset or attraction. The current attribute indicates which of the scales is currently on display.
<mapExtent system="gb" units="m"
xmin="433422.09225259" xmax="446579.09225259"
ymin="411053.257897711"
ymax="418947.257897711" />
The mapExtent element describes the coordinates of the four corners of the map by way of the xmin, xmax, ymin and ymax attributes.
In this example, the coordinate system attribute is set to Great Britain. This tells us that the coordinates are provided in the Ordnance Survey National Grid (OSNG) projection (Eastings and Northings). Coordinates can also be provided in Mercator projection. Both projections are measured in meters, hence the units="m".
<centrePoint>
<coordinate system="gb" units="m"
x="440000.09225259" y="415000.257897711" />
</centrePoint>
The centrePoint element uses its child element, coordinate system, to describe the center of the map.
The coordinate system element contains the x and y attributes. The coordinate system parameter refers to the type of coordinate system used ("mercator" or "gb") and its value determines the values that are returned for x and y.
<circlePoint>
<pinPosition visibility="visible" xpix="252" ypix="41" /> <coordinate system="gb" units="m"
x="440494.09225259" y="417438.257897711" />
</circlePoint>
The circlePoint element refers to the position on the map at which you can place an icon that represents the nearest store, asset or attraction searched for.
The coordinates of the icon are given by the coordinate element and are described in the same terms as the mapExtent and centrePoint elements.
The pinPosition element states the pixel coordinates of the icon displayed on the map.
The visibility attribute in both the mapExtent and pinPosition elements shows a value of “visible” when the icon is displayed on the current map.
Please note that you should provide your own icon(s). Multimap does not provide images for circlepoint details or for map search results.
<copyrightInfo>
<conditions>
<para />
<infoUrl />
<logoUrl />
</conditions>
</copyrightInfo>


This example does not contain copyright information but where maps are provided by Ordnance Survey, the para element would contain this:

<copyrightInfo>
<conditions>


<para>This map image contains Ordnance Survey data and is protected by Crown copyright. Unauthorised reproduction may lead to prosecution and/or civil proceedings.</para>

<infoUrl>clients.multimap.com/about/terms_of_use/</infoUrl>
<logoUrl>http://www.ordnancesurvey.co.uk/images/logo1.gif</logoUrl>
</conditions>
</copyrightInfo>
The copyrightInfo element contains the map data providers' copyright-notice-text in the para child element. The infoUrl child element contains a link to a Multimap page that shows the full terms and conditions of map and data use. The logoUrl parameter may contain a link to a logo.

If a map is presented on your website, all copyright text must be reproduced and be visible near to where the map is displayed.
<multimapTerms>Powered by Multimap.com: online maps to everywhere</multimapTerms> The multimapTerms element contains Multimap promotional text. It is optional to include this text, but if it is present, then it must be made visible close to the map displayed.
<mapTitle>Map of Wakefield, West Yorkshire</mapTitle> The mapTitle element gives the name of the place on the map for reference.
</mapData> Closing tag for the mapData object opened earlier.


locationData object
CodeNotes
<locationData type="storefinder"> The locationData object opens here and closes at </locationData>.
<location id="1">The locationData object contains several location records, each of which has a unique identifier.
<record>
<param name="name">Nostell Priory</param>
<param name="street">Doncaster Road</param>
<param name="town">Nostell</param>
<param name="pc">WF4 1QE</param>
<param name="country">GB</param>
<param name="telephone">''</param>
<param name="fax">''</param>
<param name="url">''''''</param>
<param name="id">17</param>
<param name="lon">-1.388830</param>
<param name="lat">53.651900</param>
<param name="client_id" />
<param name="GeoQuality">4</param>
<param name="GeocodeSource">cp053</param>
<param name="GeocodeDate">2005-08-15</param>
<param name="dist">8.41</param>
<param name="xpix">268</param>
<param name="ypix">57</param>
<param name="pix_visible">visible</param>
<param name="CurrentRecord">1</param>
</record>
The record element shows populated name-value pairs that are contained in your Storefinder table of addresses.

This element also contains some Multimap-generated fields, such as dist. This is the distance that you can ask Multimap to be configured as miles or kilometers from the circlePoint. By default, this is in kilometers.
pix_visible, xpix and ypix are repetitions of data found in the forthcoming pinPosition element.

visible specifies that the icon should appear on the map.
<locationPoint> <pinPosition visibility="visible" xpix="268" ypix="57" /> <coordinate system="gb" units="m" x="" y="" /> </locationPoint> The locationPoint element gives the physical and pixel coordinates of the location in the same terms as the element.

Enhancing Your XML Storefinder Service

Integrating XML Travel Directions with XML storefinder

You can combine an XML Storefinder service with an XML Travel Directions service to use a store location in a Storefinder table of addresses as the end point of a route. For illustrated examples of integrating the XML Storefinder and XML Travel Directions services, please see the pages on these two services on Multimap's Business Services website. For more details about Multimap's XML Travel Directions service, please contact your Multimap account manager.

Integrating Multimap Mobile Services with XML Storefinder

You can combine an XML Storefinder service with Multimap's:

For more details about Multimap's mobile services, please contact your Multimap account manager.

Managing Multilingual Multimap Services

Multimap's XML Storefinder service supports several languages by default. This is useful when an XML Storefinder is combined with another Multimap service that has been configured to be multilingual. The language that a Multimap service uses depends on two factors:

This default language is English, but the service supports ten languages altogether:

LanguageAbbreviationLanguageAbbreviation
DanishdaItalianit
DutchnlNorwegianno
EnglishenPortuguesept
FrenchfrSpanishes
GermandeSwedishsv

The list of languages we offer is continually expanding but you can also provide your own translation at any time, if preferred.

To change the language in which Multimap delivers your XML Storefinder service, or to let it deliver a number of language translations:

  1. If you are combining your XML Storefinder with an HTML service, ask your Multimap account manager or the Multimap Sales team to configure that service for the relevant language and for passing parameters between HTML templates.
  2. When this has been done, use the lang parameter to specify a language whenever you use a URL in an HTTP request.

Please ensure the name of your lang parameter matches one of the two-letter language codes shown in the table above. If you are combining XML Storefinder with an HTML service, please also ensure that the value of the lang parameter matches the prefix of a .strings file that you can see in Client Zone for that HTML service (such as "en.strings" or "fr.strings"; please note that the file's extension must only be ".strings"):

The two lower-case letters that make up the lang parameter value (and the .strings file-name prefix, if applicable) should correspond to the correct ISO 639 two-letter language code. For a full list of these codes, please refer to the ISO 639 Language Codes web page.

Please note that these two-letter codes must be specified in lower case in .strings files.


Frequently Asked Questions

Can I combine my XML Storefinder service with other Multimap services?

Yes; please see the section on Service enhancements for details.

Can I automate my data upload?

You can use Multimap's XML Data Upload service to automate this process. Please contact your Multimap account manager for more details.

Why can I not see street-level maps when I specify that scale in an HTTP request?

The availability of street-level maps for any country or region depends on your XML Storefinder's settings. Please contact your Multimap account manager or the Multimap Customer Support team if you wish to check or update these settings.

Why does the store whose location I specified in my HTTP request not appear in the exact center of the map that the XML response provides?

The nature of map tiling means that, if you make a request for a store's location, Multimap returns the nearest map tile that relates to that location. The exact center of the map tile is not necessarily the same as the location that you specified in your original HTTP request.


Further Help

If you require further help with your Multimap service implementation, additional Multimap services or general account enquiries, please contact Multimap:

Sales: +44 (0)20 7632 7800
Customer Support: +44 (0)20 7632 7777
email: mminform@microsoft.com