/*
* Copyright (C) 2014 Alec Dhuse
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package co.foldingmap.mapImportExport;
import java.util.HashMap;
/**
*
* @author Alec
*/
public class GpxGarminExtensions {
private HashMap<String, String> objectClassToSymbolMap, symbolToObjectClassMap;
public GpxGarminExtensions() {
initHashMaps();
}
/**
* Adds a mapping between Garmin Symbols and FoldingMap ObjectClasses.
*
* @param symbol
* @param objectClass
*/
private void addMapping(String symbol, String objectClass) {
objectClassToSymbolMap.put(objectClass, symbol);
symbolToObjectClassMap.put(symbol, objectClass);
}
/**
* Converts a Garmin symbol into a FoldingMap object class.
*
* @param symbol
* @return
*/
public String getClassFromSymbol(String symbol) {
if (symbolToObjectClassMap == null)
initHashMaps();
String object = symbolToObjectClassMap.get(symbol);
if (object == null)
object = "(Unspecified Point)";
return object;
}
/**
* Converts a FoldoingMap object class to a Garmin Symbol.
*
* @param objectClass
* @return
*/
public String getSymbolFromClass(String objectClass) {
if (objectClassToSymbolMap == null)
initHashMaps();
String symbol = objectClassToSymbolMap.get(objectClass);
if (symbol == null)
symbol = "Waypoint";
return symbol;
}
private void initHashMaps() {
objectClassToSymbolMap = new HashMap<String, String>();
symbolToObjectClassMap = new HashMap<String, String>();
addMapping("Airport", "Airport");
addMapping("Bank", "Bank");
addMapping("Bar", "Bar");
addMapping("Bridge", "Bridge");
addMapping("Building", "Building");
addMapping("Campground", "Camp Site");
addMapping("Cemetery", "Cemetery");
addMapping("Church", "Place Of Worship");
addMapping("Circle with X", "Roadblock");
addMapping("City (Capitol)", "Place - Capitol");
addMapping("City (Large)", "Place - City");
addMapping("City (Medium)", "Place - Town");
addMapping("City (Small)", "Place - Village");
addMapping("Convenience Store", "Grocery");
addMapping("Dam", "Dam");
addMapping("Danger Area", "Dangerous Area");
addMapping("Drinking Water", "Drinking Water");
addMapping("Fast Food", "Restaurant - Fast Food");
addMapping("Forest", "Forest");
addMapping("Gas Station", "Gas Station");
addMapping("Golf Course", "Golf");
addMapping("Ground Transportation", "Bus Station");
addMapping("Heliport", "Heliport");
addMapping("Information", "Information");
addMapping("Library", "Library");
addMapping("Lodging", "Hotel");
addMapping("Marina", "Harbor");
addMapping("Medical Facility", "Clinic");
addMapping("Mine", "Mine");
addMapping("Movie Theater", "Cinema");
addMapping("Museum", "Museum");
addMapping("Park", "Park");
addMapping("Parking Area", "Parking");
addMapping("Pharmacy", "Pharmacy");
addMapping("Picnic Area", "Picnic Area");
addMapping("Pin, Red", "Marker");
addMapping("Police Station", "Police Station");
addMapping("Post Office", "Post Office");
addMapping("Restaurant", "Restaurant");
addMapping("Restroom", "Public Toilets");
addMapping("Scenic Area", "Lookout");
addMapping("School", "School");
addMapping("Shipwreck", "Shipwreck");
addMapping("Shopping Center", "Super Market");
addMapping("Skull and Crossbones", "Dangerous Area");
addMapping("Summit", "Mountain Peak");
addMapping("Swimming Area", "Swimming");
addMapping("Tall Tower", "Antenna");
addMapping("Telephone", "Phone");
addMapping("Toll Booth", "Toll Booth");
addMapping("Trail Head", "Trail Head");
addMapping("Waypoint", "(Unspecified Point)");
addMapping("Zoo", "Zoo");
objectClassToSymbolMap.put("Cafe", "Restaurant");
objectClassToSymbolMap.put("Hill", "Summit");
objectClassToSymbolMap.put("Embassy", "Flag");
objectClassToSymbolMap.put("Minefield", "Skull and Crossbones");
objectClassToSymbolMap.put("Parking Garage", "Parking Area");
objectClassToSymbolMap.put("Place Of Worship - Christian", "Church");
objectClassToSymbolMap.put("University", "School");
}
}