For import of POIs into the WASP database, there are some import formats defined
- Simple POI import format, SPIF
- Complex POI import format, CPIF
poiImport.pl -f readSPIF and
readCPIF respectively for details about how the POI files are parsed and imported into the WASP database. For full import into WASP including entry points, static IDs etc use the
If you have POIs in SPIF file, it can be converted to CPIF with
poiImport -f convertSPIFtoCPIF, so you can add the POIs to WASP with the full routine for CPIF with the
Simple POI import format
This document describes the file format used for importing points of interest, POIs, to the Wayfinder server. The format is a single file text format including columns with a fixed column order. In the text file, each row represents one POI and the order of the columns defines the type of attribute value. The columns are separated by semicolon. This format is easy to create from Excel files. Some attributes are mandatory and some are optional. When an optional attribute has no value, it is represented by an empty column like “;;”. Empty columns at the end of a row are not necessary to include.
Because the column separator is semicolon, it is strictly forbidden to include semicolon in column value text. Therefore, it is unfortunately impossible to include semicolon in attribute values. Furthermore, the values should never include escaped values, such as “<” for “<”. The text should be in character set UTF-8.
Columns marked with “mandatory” below must have values.
Columns: 1. sourceReference, mandatory 2. name, mandatory 3. typeID, mandatory 4. lat, mandatory 5. lon, mandatory 6. country, 7. zipCode, 8. zipArea, 9. addressStreetName, 10. addressHouseNbr, 11. fullAddress, 12. phoneNbr, 13. faxNbr, 14. email, 15. url, 16. openHours, 17. shortDescription, 18. longDescription, 19. image, 20. ccDisplayClass,
This is an example of a single row representing a POI. In the example, column 13, 14, 17, 18, 19 and 20 have no values.
10025;Lauda Air Ligitarsasag;1;47.494921;19.051054;Hungary;1052;Budapest; \\ Aranykiz utca;6;Aranykiz utca 6B;+36-1-2663169;;;www.luandaair.hu;0 - 24;
A unique ID to be used for this POI, unique within the POI data set.This column must have a value.
The name of the POI. Will be used when searching for the POI. This column must have a value.
The ID of the Wayfinder POI type. The POI type is used for defining which icon is used when displaying the POI in the map. The type may also in the WASP POICategoryType table be mapped to a POI category, which is used for making category searches, like searching for all restaurants. The available type IDs can be found in the WASP POITypeTypes table and in the mc2 enum ItemTypes::pointOfInterest_t. This column must have a value.
WGS 84 decimal latitude coordinate value. This column must have a value.
WGS 84 decimal longitude coordinate value. This column must have a value.
A text string defining the country of the POI. The country text strings to use can be found in the WASP POICountries table.
The zip code of the POI.
The zip area name of the POI (city).
The street name part of the POI address.
The house number part of the POI address.
Both the street name and house number parts of an address. This column is only used for showing info about a POI to the user.
The phone number of the POI. This number should be formatted so it can be used for calling directly from the phone. The country code of the phone number is mandatory and should be preceded by a “+” sign. All non-digit characters except for the leading “+” sign will be removed before using the number for calling. Example value: “+36-1-2663168”.
The fax number of the POI. This number should be formatted so it can be used for calling directly from the phone. The country code of the phone number is mandatory and should be preceded by a “+” sign. All non-digit characters except for the leading “+” sign will be removed before using the number for calling. Example value: “+36-1-2663169”.
The email address of the POI.
The web page URL of the POI. Do not include the “http colon slash slash”
The open hours of the POI. Text field, avoid using words in any specific language if possible.
A short description of the POI. Try to keep below 100 characters.
A long description of the POI.
The name of the image file with a picture of the POI. The images must be delivered on the side.
Only used for POIs with city center POI type, leave blank otherwise. The value should be one of the settlement display classes used in Tele Atlas MultiNet, see Appendix A.
Center of Settlement display class
1 - 2 capital of country 3 - 4 most important settlement of a municipality >= 1.000.000 inhabitants 5 most important settlement of a municipality of 500.000-999.999 inhabitants 6 - 7 most important settlement of a municipality of 100.000-499.999 inhabitants 8 most important settlement of a municipality of 50.000-99.999 inhabitants 9 - 10 most important settlement of a municipality of 10.000-49.999 inhabitants 11 most important settlement of a municipality < 10.000 inhabitants 12 all other settlements
Complex POI import format
The complex format (CPIF) is a text-based format that is very flexible. The attributes for a POI are given one attribute per row. Each row is semicolon separated with the following information:
- POI marker ID to keep the attributes for one POI collected
- POI attribute type id
- POI attribute value
The POI Attribute type is used as defined in the WASP POIAttributeTypes table, and the attribute value as below:
- 2 Comment: String value
- 3 Country: Unsigned integer value as defined in the POICountries table.
- 4 Symbol Coordinate: Coordinate string “lat;lon” with coordinates expressed in mc2.
- 5 Valid From Version: Unsigned integer value as defined in the EDVersion table.
- 6 Valid To Version: Unsigned integer value as defined in the EDVersion table.
- 7 POI Type: Unsigned integer value as defined in the POITypeTypes table.
- 8 Entry Point Coordinate: Coordinate string “lat;lon” with coordinates expressed in mc2.
- 9 Name: Name string “type;lang;name” with type unsigned integer value as defined in the POINameTypes table and lang unsigned integer as defined in the POINameLanguages table. A POI can have many names
- 10 Source: Unsigned integer value as defined in the POISources table.
- 11 Source Reference: String value, e.g. representing POI id at the supplier.
- 12 POI ID: Unsigned integer value representing the ID of the POI in WASP.
- 13 Deleted: Boolean integer value 0 or 1.
- 14 In Use: Boolean integer value 0 or 1.
- 15 POI Category: Unsigned integer value as defined in the POICategoryTypes table.
- 16 POI External Identifier: deprecated
- 1000 + infoKeyID POI Info: String value “lang;val” with lang unsigned integer as defined in the POINameLanguages table. The infoKeyID from the WASP POIInfoKeys table.
All combined attribute value strings are separated by semicolons. The CPIF format handles POI names and POI info values with semicolons since the name-part of these attributes is last in the combined string.
This is one example of a set of rows representing a subway station POI.
poi202500300135368;3;12 poi202500300135368;4;582718423;28059427 poi202500300135368;7;99 poi202500300135368;9;0;7;Place Monge poi202500300135368;11;poi202500300135368 poi202500300135368;1000;7;Rue Monge poi202500300135368;1002;31;75005 poi202500300135368;1004;31;+(33)-(8)-36687714 poi202500300135368;1005;31;Paris poi202500300135368;1009;31;www.ratp.fr poi202500300135368;1087;31;2
- The encoding in the file should be UTF-8.
- When creating a POI from CPIF, if the deleted value is left out it is by default set to false (0). Likewise the inUse value is set to true (1).
- The POI ID cannot be decided in CPIF when importing POIs into WASP, but is set automatically when adding each POI to WASP.
- If any of country, source, validFromVersion and validToVersion are left out, they can be set by param to the script that is parsing the CPIF.
- A POI can/must/should not be entered into WASP without valid values for at least:
- Source reference
- Symbol coordinate
- Official name