The maps must have a hierarchy of named administrative areas, which are used for searching. At least municipal, in combination with built-up areas or other features for the search index are required. The municipals must cover the complete mapped area (= part of or an entire country) seamlessly, i.e. no area must lack a municipality. The municipals are used for drawing land in the map. Built-up areas corresponds to cities and are used for drawing cities in the map.
Maps for the Wayfinder server can be created from midmif files, which is the MapInfo Interchange Format (MIF). It consists of one file with coordinate information (file suffix .mif) and one with attribute information (file suffix .mid). This is not to be confused with the MapInfo Format consisting of files with suffix .map .dat etc. Regarding the ESRI shape file format, it is easy to convert from shape to midmif.
Several types of items can be created from the midmif format. Here is a list with the available types (alphabetical order) and a short description. For a more detailed description of the types, we refer to eg Tele Atlas MultiNet documentation.
Points of interest (POIs) are not added to the mcm maps directly from midmif, but via the internal SQL database called WASP (Wayfinder Administration System for Points-of-interest). In the database different kinds of information can be stored about each POI, including name, address, coordinate and business category. POIs must therefor be imported into the database before added to the mcm maps. An import format directly from midmif to WASP database has not yet been developed. Other import formats are used, eg Wayfinder Simple POI Import Format (SPIF) or Wayfinder Complex POI Import Format (CPIF).
Mandatory attributes for POIs are: `name* poi type and coordinate. Additional attributes are: address, zip code, city, phone number, web site, opening hours and more..
The mcm maps are initialized by adding the municipals, of which each map constitutes. Here also the mcm map gfxData is created from mif files holding the outline coordinates of each map. The gfxData forms the geographical extent of each map, which is needed to decide in which map the rest of the items should be added (if the check must be performed based on geographical location). The mcm maps are then successively created by adding the remaining item types from midmif files, one type at a time in any order. All items of one type can for this step preferably be included in the same file. When adding street segments some restrictions and connection attributes can be set using turn tables.
All steps in this creation process are performed with GenerateMapServer
. To init each mcm map the --initMapFromMidMid
option is called with the municipal file as parameter. To add the remaining items to all of the maps the --createItemsFromMidMif
option is called with the item midmif file as parameter.
The midmif items from files in the call to createItemsFromMidMif()
will be added to the mcm map which they fit in. There are some different option for how to decide if one item fits a mcm map:
settlementID
and are of settlementOrder
added to it. The settlementID
info may be provided from the map supplier, or be calculated in the process of creating Wayfinder midmif format.The result of this creation process are raw mcm maps with all type of items included as well as some restrictions etc. The process must then be followed by misc post processing to complete locations, turn descriptions, connections between maps, and overview maps creation.
For the midmif files to be used when creating Wayfinder maps, there are some requirements.
For convenience there should be one midmif file per item type. The file name includes what type of items it contains. If eg one midmif file holds built-up areas the file name could include the word builtupareaitem
”, if it holds parks the name could include parkitem
” etc (case ignored). The MC2 system really requires that the item type is included in the file name in order to know what type of items to create. See ItemTypes::getItemTypeFromString
for the item type strings. Case is ignored. Likewise, the mif file with the outline coordinates (gfxData
) of each mcm map must have the same name as the midmif file with the municipals for that map, followed by the word map
. If eg the municipal file is called dk_municipalItems.mid
and dk_municipalItems.mif
, the gfxData
file must be called dk_municipalItemsmap.mif
The mif file must only contain the geographical MIF features Point
, Line´,
Pline or
Region`.
The mif header must state which coordinate system is used for expressing the coordinates in the mif file. This is done by the word Coordsys
” followed by a code for the coordinate system according to:
mc2
gs84_latlon_deg
wgs84_lonlat_deg
rt90
rt90_lonlat
utm x
utm_lonlat x
If any false easting or false northing is present on the coordinates this also must be stated in the mif header. The keywords are falseEasting
and falseNorthing
. Example of mif header for coordinates expressed in the UTM system:
Version 300 Charset “WindowsLatin1” Delimiter “,” Coordsys utm_lonlat 39 falseNorthing -2000000 falseEasting 500000 Columns 25 id decimal (11,0) name char (25) … Data
The only exception from giving the Coordsys
tag is when the coordinates are expressed in the mc2 coordinate system with normal coordinate order (latitude, longitude). This is considered to be the default system. However, it is recommended to give the tag anyway in order to always know what coordinate system is used in the mif file.
The mid file is comma separated and must hold certain attributes for each type of item. Common attributes for all items are midID and name. Many items do not have any other attributes than the common ones, eg built-up areas, railways and individual buildings. Some items have one additional item specific attribute giving a type for the item, eg waters, parks and buildings. For street segments several item specific attributes are required giving the speed limit, house numbering, road class and many more. Below follows a specification of which attributes are required for each item type. Attributes in italic are extra attributes that can be used if available, but are not mandatory.
If adding extra midmif items to maps (not in the creation from midmif), it is for all item types possible to specify a map ssi coordinate at the very end of the mid row. This coordinate defines in which mcm map the midmif item should be added. The coordinate is expressed in mc2 units and must be within 2 meters from any street segment item in the correct mcm map. If using such a map ssi coordinate the GenerateMapServer --createItemsFromMidMif
option must be combined with the --useCoordToFindCorrectMap
option. The mid row for forest item will be midID
, name
, allNames
, mapssilat
, mapssilon
.
midID
, name
, allNames
midID
, name
, allNames
, settlementId, settlementOrdermidID
, name
, allNames
, buildingType
midID
, name
, allNames
, settlementId, settlementOrder, indexAreaOrdermidID
, name
, allNames
, cartographicType
midID
, name
, allNames
, settlementId, settlementOrdermidID
, name
, allNames
, roadClass
, posSpeed
, negSpeed
, posEntryRstr
, negEntryRestr
, levelNode0
, levelNode1
, roadToll
, ferryType, node0borderNode, node1borderNodemidID
, name
, allNames
midID
, name
, allNames
, individualBuildingTypemidID
, name
, allNames
midID
, name
, allNames
midID
, name
, allNames
, parkType
midID
, name
, allNames
, settlementId, settlementOrdermidID
, name
, allNames
, roadClass
, posSpeed
, negSpeed
, posEntryRestr
, negEntryRestr
, nbrLanes
, width
, maxHeight
, maxWeight
, leftStart
, leftEnd
, rightStart
, rightEnd
, paved
, levelNode0
, levelNode1
, roundabout
, ramp
, divided
, multidig
, roadToll
, controlledAccess
, roundaboutish, leftZipCode, rightZipCode, leftSettlementId, rightSettlementId, settlementOrder, node0borderNode, node1borderNode, roadDisplayClassmidID
, name
, allNames
, waterType
, settlementId, settlementOrderHere follows a definition of all attributes. Common attributes:
"
characters, eg "Lund"
. If the item has no name give an empty string, ""
.roadNumber
give invalidLanguage
as language since a number has no language. Every name is constructed according to name:nameType:nameLanguage
. The separator is the :
character (colon). This implies that Wayfinder currently can not handle names that includes the :
character. If the item has more than one name the names are separated with a space character. The whole string is surrounded by "
characters, eg "North Avenue:officialName:eng A10:roadNumber:invalidLanguage"
. If the item has no name give an empty string, ""
.Item sub type attributes. For more detailed description of the attributes, we refer to Tele Atlas MultiNet documentation:
"
characters, i.e. “cityPark” or “regionOrNationalPark”.OldIndividualBuildingItem::stringToBuildingType
for all possible types.Built-up areas if they are index areas. For more detailed description of the attributes, we refer to eg Tele Atlas MultiNet documentation.
Street segment (and ferry) attributes. For more detailed description of the attributes, we refer to eg Tele Atlas MultiNet documentation:
ItemTypes::roadClass
).ItemTypes::entryrestriction_t
).ItemTypes::entryrestriction_t
).ItemTypes::roadDisplayClass_t
): * -1
invalid road display class * 0
partOfWalkway * 1
partOfPedestrianZone * 2
roadForAuthorities * 3
entranceExitCarPark * 4
etaParkingGarage * 5
etaParkingPlace * 6
etaUnstructTrafficSquare * 7
partOfServiceRoad * 8
roadUnderContructionAny left and/or right zipCode provided for a street segment will be used for creating zip code items in the Wayfinder map. The left and/or right settlementId is used for deciding in which map a street segment fits. The settlementOrder gives the order of the left and right settlementId, order meaning order0, order1, order2, etc, where order8 is Wayfinder municipal item and order9 is Wayfinder city part item. The special order99 is Wayfinder built-up area item. Example: A street segment has left settlementId 67 and order 9. The segment should be added to the map that has a city part item created from midmif which has midId 67. If no city part items exist, try finding a order8 with midId 67 instead.
Example of mid file for street segments
1,"A10","Pampas Highway}officialName}eng A10}roadNumber}invalidLanguage" \
,0,110,-1,0,3,,,,,0,0,0,0,"Y",,,"N","N","N","N","N","Y"
2,"A10","Pampas Highway}officialName}eng A10}roadNumber}invalidLanguage" \
,0,110,-1,0,3,,,,,0,0,0,0,"Y",,,"N","N","N","N","N","Y"
4,"North Ramp","North Ramp}officialName}eng" \
,1,90,-1,0,3,,,,,0,0,0,0,"Y",,,"N","Y","N","N","N","N"
20,"Pine Street","Pine Street}officialName}eng" \
,3,50,50,0,0,,,,,5,13,6,18,"Y",,,"N","N","N","N","N","N"
606969,"Árok utca","Árok utca}officialName}hun",3,50,50,0,0,,,,,0,0,0,0 \
,"Y",0,0,"N","N","N","N","N","N","N","2500","2500",25131,25131,9
Example of mid file for built-up areas
25,"Copenhagen","Copenhagen:officialName:eng Köpenhamn:officialName:swe \
Købenavn:officialName:den"
Example of mid file for building items
12,"","","unknownType"
Example of mid file for cartographic items
13,"University of London","Univeristy of London:officialName:eng" \
,"universityOrCollegeGround"
14,"Old Sanctuary","Old Sanctuary:officialName:eng","cemetaryGround"
15,"King Georges Hospital","King Georges Hospital:officialName:eng" \
,"hospitalGround"
16,"Abbey Field","Abbey Field:officialName:eng","golfGround"
The midmif files only holds attributes for each item individually. Any restrictions between street segments, such as vehicle restrictions, cannot be stored in midmif files. However, by using turn tables restrictions and other connection attributes can be expressed.
The turn table is a tab separated text file. It holds columns with information about relations between the segments in the street segments file. The choice of keys for the columns in the turn table is inspired by ESRI turn tables. The segments are identified by the midIDs given in the street segment mid-file, the from-segment as ARC1_ and the to-segment as ARC2_. The restriction or other connection attribute is is given by the IMPEDANCE. Currently the following values are valid:
One example of a turn table:
KEY NODE_ ARC1_ ARC2_ IMPEDANCE
1 1 2 2 -1
2 2 1 1 -1
3 3 20 20 -1
4 3 20 4 0
4348 16 1080 1070 -2
1386511 -1 -1 602947 -1
To enable handling in the MC2-system when adding midmif items to mcm maps, it must have the same name as the street segment file followed by the word “turntable”. If eg the street segment file is named streetSegmentItems.mid/mif the turn table must be called streetSegmentItemsturntable.txt.
Please see GMSMidMifHandler::extractRestrictionsFromTurnTable
for more details.
Here follows definitions of some attributes, as well as enumerations of available Wayfinder name types and name languages.
The street network is classified in a hierarchical structure of road classes, see also the mc2 enum ItemTypes::roadClass
.
The available types of entry restrictions, see also the mc2 enum `ItemTypes::entryrestriction_t´
The available name types, see also the mc2 enum ItemTypes::name_t
A snapshot of the available name languages, short version and long version. See the mc2 enum LangTypes::language_t
and the LangTypes::languageAsString
table for a list of all available languages.
The name language invalidLanguage shall be used for names with name type roadNumber
, since roadNumbers
by definition have no language.
The available string values for cartographic type of cartographic items. See also mc2 enum class ItemSubTypes::cartographicType_t