<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: mapmap.xml 155 2008-01-25 04:15:20Z dret $ -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- mapmap/@version identifies the version of the map file; version numbers are increased if the map file format is updated in a non-backwards-compatible way. -->
<!-- mapmap/@revision identifies the revision of the map file, this will often be generated by a revision control system (such as subversion). -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- service/@id must be a unique identifier for a mapping; it is used for specifying a mapping in conversion functions. -->
<!-- service/@separator is the separator used by the service for separating URI parameters. -->
<!-- service/@match is a regex which is used for matching a URI for mapping it, its regex must match. if multiple services match, the first is used and all others are ignored. -->
<!-- service/@non-match is a regex which is used for matching a URI for mapping it, its regex must not match. if multiple services match, the first is used and all others are ignored. -->
<!-- service/@name is a human-readable name for a map service. -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- service/info identifies information about the service that can be found at some uri-identified resource (@href is the link, @title an optional title for the resource). -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- read defines all parameters which can be extracted from a map service URI. -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- read/part/@id is a part's id which is used across map services (i.e., it identifies a concept that can be extracted from a map service URI). -->
<!-- read/part/@pattern is a pattern which is used to extract the actual part value, the pattern must contain exactly one group (paired parentheses) which encloses the value. -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- read/part/token is used if values should not be extracted by value, but by matching tokens; token elements define the allowed values and match them to values. -->
<!-- read/part/token/@pattern is a regex which is matched with the string extracted by the @pattern. the match is done as "^(@pattern)$" so that only complete matches count. -->
<!-- read/part/token/@value is the value that should be used as value of the part if the token/@pattern matches. -->
<!-- read/part/token/@default indicates that this part should be extracted, even if the part/@pattern does not match. it also indicates the @value to use if no token/@pattern matches. -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- write defines all parameters which can be used for generating a map service URI. -->
<!-- write/@prefix is a string which specifies the prefix to be used for the URI before generating the part-dependent components. -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- write/part/@base is a list of read/part/@id values which indicate that if those parts are present, then this component should be generated. -->
<!-- write/part/@pattern is a replacement pattern which contains $x parameters, these are replaced by the @base values depending on their position in @base. -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<mapmap version="1" revision="$Rev: 155 $">
	<service id="google" separator="&amp;" match="^http://maps\.google\.com/maps" non-match="msid=\d+" name="Google Maps">
		<info href="http://mapki.com/wiki/Google_Map_Parameters" title="Google Map Parameters - Google Mapki"/>
		<read>
			<part id="address" pattern="q=(.*?)&amp;"/>
			<part id="lat" pattern="ll=(.*?),.*?&amp;"/>
			<part id="long" pattern="ll=.*?,(.*?)&amp;"/>
			<part id="view" pattern="t=(.*?)&amp;">
				<token pattern="m" value="map" default="yes"/>
				<token pattern="h" value="hybrid"/>
				<token pattern="k" value="satellite"/>
				<token pattern="p" value="physical"/>
			</part>
			<part id="zoom" pattern="z=(.*?)&amp;">
				<token pattern="19" value="19"/>
				<token pattern="18" value="18"/>
				<token pattern="17" value="17"/>
				<token pattern="16" value="16"/>
				<token pattern="15" value="15"/>
				<token pattern="14" value="14"/>
				<token pattern="13" value="13"/>
				<token pattern="12" value="12"/>
				<token pattern="11" value="11"/>
				<token pattern="10" value="10"/>
				<token pattern="9" value="9"/>
				<token pattern="8" value="8"/>
				<token pattern="7" value="7"/>
				<token pattern="6" value="6"/>
				<token pattern="5" value="5"/>
				<token pattern="4" value="4"/>
				<token pattern="3" value="3"/>
				<token pattern="2" value="2"/>
				<token pattern="1" value="1"/>
			</part>
			<part id="overview" pattern="om=(.*?)&amp;">
				<token pattern="1" value="open" default="yes"/>
				<token pattern="[^1]" value="closed"/>
			</part>
		</read>
		<write prefix="http://maps.google.com/maps?">
			<part base="address" pattern="q=$1"/>
			<part base="lat long" pattern="ll=$1,$2"/>
			<part base="view" pattern="t=$1">
				<token pattern="map" value="m" default="yes"/>
				<token pattern="hybrid" value="h"/>
				<token pattern="satellite" value="k"/>
				<token pattern="physical" value="p"/>
			</part>
			<part base="zoom" pattern="z=$1">
				<token pattern="19" value="19"/>
				<token pattern="18" value="18"/>
				<token pattern="17" value="17"/>
				<token pattern="16" value="16"/>
				<token pattern="15" value="15"/>
				<token pattern="14" value="14"/>
				<token pattern="13" value="13"/>
				<token pattern="12" value="12"/>
				<token pattern="11" value="11"/>
				<token pattern="10" value="10"/>
				<token pattern="9" value="9"/>
				<token pattern="8" value="8"/>
				<token pattern="7" value="7"/>
				<token pattern="6" value="6"/>
				<token pattern="5" value="5"/>
				<token pattern="4" value="4"/>
				<token pattern="3" value="3"/>
				<token pattern="2" value="2"/>
				<token pattern="1" value="1"/>
			</part>
			<part base="overview" pattern="om=$1">
				<token pattern="open" value="1" default="yes"/>
				<token pattern="closed" value="0"/>
			</part>
		</write>
	</service>
	<service id="yahoo" separator="&amp;" match="^http://maps\.yahoo\.com/" name="Yahoo Maps">
		<info href="http://help.yahoo.com/l/us/yahoo/maps/misc/maps-26.html" title="How do I create links to Yahoo! Maps?"/>
		<read>
			<part id="address" pattern="q1=(.*?)&amp;"/>
			<part id="lat" pattern="lat=(.*?)&amp;"/>
			<part id="long" pattern="lon=(.*?)&amp;"/>
			<part id="view" pattern="mvt=(.*?)&amp;">
				<token pattern="m" value="map"/>
				<token pattern="h" value="hybrid"/>
				<token pattern="s" value="satellite"/>
			</part>
			<part id="zoom" pattern="mag=(.*?)&amp;">
				<token pattern="1" value="19"/>
				<token pattern="2" value="18"/>
				<token pattern="3" value="17"/>
				<token pattern="4" value="16"/>
				<token pattern="5" value="15"/>
				<token pattern="6" value="14"/>
				<token pattern="7" value="13"/>
				<token pattern="8" value="12"/>
				<token pattern="9" value="11"/>
				<token pattern="10" value="10"/>
				<token pattern="11" value="9"/>
				<token pattern="12" value="8"/>
				<token pattern="13" value="7"/>
				<token pattern="14" value="6"/>
				<token pattern="15" value="5"/>
				<token pattern="16" value="4"/>
				<token pattern="17" value="3"/>
			</part>
		</read>
	</service>
	<service id="live" separator="&amp;" match="^http://(maps|local)\.live\.com/" name="Windows Live Maps">
		<info href="http://www.californiarecycles.com/buildurl.html" title="Build Your Own URL"/>
		<read>
			<part id="address" pattern="where1=(.*?)&amp;"/>
			<part id="lat" pattern="cp=(.*?)~.*?&amp;"/>
			<part id="long" pattern="cp=.*?~(.*?)&amp;"/>
			<part id="view" pattern="style=(.*?)&amp;">
				<token pattern="r" value="map" default="yes"/>
				<token pattern="h" value="hybrid"/>
				<token pattern="a" value="satellite"/>
			</part>
			<part id="zoom" pattern="lvl=(.*?)&amp;">
				<token pattern="19" value="19"/>
				<token pattern="18" value="18"/>
				<token pattern="17" value="17"/>
				<token pattern="16" value="16"/>
				<token pattern="15" value="15"/>
				<token pattern="14" value="14"/>
				<token pattern="13" value="13"/>
				<token pattern="12" value="12"/>
				<token pattern="11" value="11"/>
				<token pattern="10" value="10"/>
				<token pattern="9" value="9"/>
				<token pattern="8" value="8"/>
				<token pattern="7" value="7"/>
				<token pattern="6" value="6"/>
				<token pattern="5" value="5"/>
				<token pattern="4" value="4"/>
				<token pattern="3" value="3"/>
				<token pattern="2" value="2"/>
				<token pattern="1" value="1"/>
			</part>
		</read>
		<write prefix="http://maps.live.com/default.aspx?">
			<part base="address" pattern="where1=$1"/>
			<part base="lat long" pattern="cp=$1~$2"/>
			<part base="view" pattern="style=$1">
				<token pattern="map" value="r" default="yes"/>
				<token pattern="hybrid" value="h"/>
				<token pattern="satellite" value="a"/>
			</part>
			<part base="zoom" pattern="lvl=$1">
				<token pattern="19" value="19"/>
				<token pattern="18" value="18"/>
				<token pattern="17" value="17"/>
				<token pattern="16" value="16"/>
				<token pattern="15" value="15"/>
				<token pattern="14" value="14"/>
				<token pattern="13" value="13"/>
				<token pattern="12" value="12"/>
				<token pattern="11" value="11"/>
				<token pattern="10" value="10"/>
				<token pattern="9" value="9"/>
				<token pattern="8" value="8"/>
				<token pattern="7" value="7"/>
				<token pattern="6" value="6"/>
				<token pattern="5" value="5"/>
				<token pattern="4" value="4"/>
				<token pattern="3" value="3"/>
				<token pattern="2" value="2"/>
				<token pattern="1" value="1"/>
			</part>
		</write>
	</service>
	<service id="ask" separator="|" match="^http://maps\.ask\.com/maps" name="Ask Maps">
		<read>
			<part id="address" pattern="ad=(.*?)\|"/>
			<part id="lat" pattern="lt=(.*?)\|"/>
			<part id="long" pattern="lg=(.*?)\|"/>
			<part id="view" pattern="vt=(.)">
				<token pattern="0" value="map" default="yes"/>
				<token pattern="1" value="hybrid"/>
				<token pattern="2" value="satellite"/>
				<token pattern="3" value="physical"/>
			</part>
			<part id="zoom" pattern="zm=(.*?)\|">
				<token pattern="1" value="19"/>
				<token pattern="2" value="18"/>
				<token pattern="3" value="17"/>
				<token pattern="4" value="16"/>
				<token pattern="5" value="15"/>
				<token pattern="6" value="14"/>
				<token pattern="7" value="13"/>
				<token pattern="8" value="12"/>
				<token pattern="9" value="11"/>
				<token pattern="10" value="10"/>
				<token pattern="11" value="9"/>
				<token pattern="12" value="8"/>
				<token pattern="13" value="7"/>
				<token pattern="14" value="6"/>
				<token pattern="15" value="5"/>
				<token pattern="16" value="4"/>
				<token pattern="17" value="3"/>
				<token pattern="18" value="2"/>
			</part>
		</read>
		<write>
			<part base="address" pattern="ad=$1"/>
			<part base="lat" pattern="lt=$1"/>
			<part base="long" pattern="lg=$1"/>
			<part base="view" pattern="vt=$1">
				<token pattern="0" value="map" default="yes"/>
				<token pattern="1" value="hybrid"/>
				<token pattern="2" value="satellite"/>
				<token pattern="3" value="physical"/>
			</part>
		</write>
	</service>
	<service id="mapquest" separator="&amp;" match="^http://www\.mapquest\.com/maps/" name="Mapquest">
		<info href="http://www.mapquest.com/features/main.adp?page=lf_maps#opt1" title="Free MapQuest Maps for Your Website"/>
	</service>
	<service id="msnmaps" separator="&amp;" match="^http://maps.msn.com/home.aspx" name="MSN Maps">
		<info href="http://www.microsoft.com/mappoint/msnmaps/mws_linking.mspx" title="Building Links to MSN Maps &amp; Directions Maps"/>
	</service>
	<service id="multimap" separator="|" match="^http://www\.multimap\.com/maps/" name="Multimap">
		<info href="http://www.multimap.com/help" title="Help &amp; Support"/>
	</service>
	<service id="osm" separator="&amp;" match="^http://www\.openstreetmap\.org/" name="OpenStreetMap">
		<info href="http://wiki.openstreetmap.org/index.php/Browsing" title="Browsing"/>
	</service>
</mapmap>
