private static String createFoliaJsonLocationJava(Vertex v)
		{
			if (v == null)
				return "null";

			AbsoluteLocation absLoc = v.AbsoluteLocations[0];
			SymbolicLocation symLoc = null;
			foreach (SymbolicLocation s in v.SymbolicLocations)
			{
				symLoc = s;
				break;
			}

			StringBuilder sb = new StringBuilder();
			sb.Append("{");
			sb.Append("id: ").Append(v.ID);
			sb.Append(", latitude: ").Append(absLoc.latitude);
			sb.Append(", longitude: ").Append(absLoc.longitude);
			sb.Append(", altitude: ").Append(absLoc.altitude);
			String title = symLoc != null ? symLoc.title : "null";
			sb.Append(", title: ").Append("\"").Append(title).Append("\"");
			String description = symLoc != null ? symLoc.description : "null";
			sb.Append(", description: ").Append("\"").Append(description).Append("\"");
			String url = symLoc != null ? symLoc.url : "null";
			sb.Append(", url: ").Append("\"").Append(url).Append("\"");
			//sb.append(", location_type: ").append(symLoc != null ? symLoc.getType().toString() : "N/A");
			sb.Append(", location_type: ").Append(symLoc != null ? symLoc.info_type ?? -1 : -1);
			string isStairEndpoint = v.isStairEndpoint().ToString().ToLower();
			sb.Append(", isStairEndpoint: ").Append(isStairEndpoint);
			string isElevatorEndpoint = v.isElevatorEndpoint().ToString().ToLower();
			sb.Append(", isElevatorEndpoint: ").Append(isElevatorEndpoint);
			string isEntrance = (symLoc != null ? symLoc.is_entrance : false).ToString().ToLower();
			sb.Append(", isEntrance: ").Append(isEntrance);
			sb.Append("}");

			return sb.ToString();
		}
		private static String createFoliaJsonLocation(Vertex v)
		{
			if (v == null)
				return "null";

			AbsoluteLocation absLoc = v.AbsoluteLocations[0];
			SymbolicLocation symLoc = null; 
			foreach (SymbolicLocation s in v.SymbolicLocations)
			{
				symLoc = s;
				break;
			}
			
			//[
			// {id: , latitude: , longitude: , altitude: , title: , description: , url: , location_type: }
			// ]

			StringBuilder sb = new StringBuilder();
			sb.Append("{");
			sb.Append("id: ").Append(v.ID);
			sb.Append(", latitude: ").Append(absLoc.latitude);
			sb.Append(", longitude: ").Append(absLoc.longitude);
			sb.Append(", altitude: ").Append(absLoc.altitude);
			String title = symLoc != null ? symLoc.title : "null";
			sb.Append(", title: ").Append("'").Append(title).Append("'");
			String description = symLoc != null ? symLoc.description : "null";
			sb.Append(", description: ").Append("'").Append(description).Append("'");
			String url = symLoc != null ? symLoc.url : "null";
			sb.Append(", url: ").Append("'").Append(url).Append("'");
			sb.Append(", location_type: ").Append(symLoc != null ? symLoc.info_type : -1);
			//ToString capitalizes boolean, so necessary to call toLower
			string isStair = v.isStairEndpoint().ToString().ToLower();
			sb.Append(", isStairEndpoint: ").Append(isStair);
			string isElevator = v.isElevatorEndpoint().ToString().ToLower();
			sb.Append(", isElevatorEndpoint: ").Append(isElevator);
			string isEntrance = (symLoc != null && (symLoc.is_entrance ?? false)).ToString().ToLower();
			sb.Append(", isEntrance: ").Append(isEntrance);
			sb.Append("}");

			return sb.ToString();
		}
        public static BitmapImage getCorrectMarker(Vertex vertex)
        {
            //First check for 'walking' properties
            if (vertex.isStairEndpoint())
                return getStaircaseMarker();
            if (vertex.isElevatorEndpoint())
                return getElevatorMarker();

            SymbolicLocation symLoc = vertex.SymbolicLocations.FirstOrDefault();
            if (symLoc == null)
                return getNoSymbolicLocationMarker();

            //v has a symbolic location. Now, check for special properties
            //SymbolicLocation symLoc = v.getLocation().getSymbolicLocation();
            if (symLoc.is_entrance.HasValue && symLoc.is_entrance.Value == true)
                return getEntranceMarker();

            //HACK: The enum is found in the 'wrong' class
            switch ((EditSymbolicLocation.InfoType)symLoc.info_type)
            {
                case EditSymbolicLocation.InfoType.NONE:
                    return getSymbolicLocationMarker();  //NONE
                case EditSymbolicLocation.InfoType.OFFICE:
                    return getOfficeMarker();              //OFFICE
                case EditSymbolicLocation.InfoType.DEFIBRELLATOR:
                    return getDefibrellatorMarker();      //DEFIBRELLATOR
                case EditSymbolicLocation.InfoType.FIRST_AID_KIT:
                    return getFirstAidMarker();            //FIRST_AID_KIT
                case EditSymbolicLocation.InfoType.FIRE_EXTINGUISHER:
                    return getFireExtinguisherMarker();    //FIRE_EXTINGUISHER
                case EditSymbolicLocation.InfoType.TOILET:
                    return getToiletMarker();              //TOILET
                case EditSymbolicLocation.InfoType.FOOD:
                    return getFoodMarker();		       //FOOD
                case EditSymbolicLocation.InfoType.LECTURE_ROOM:
                    return getLectureRoomMarker();	       //LECTURE_ROOM
                case EditSymbolicLocation.InfoType.STJERNE_DAG:
                    return getStarMarker();
                default:
                    return getSymbolicLocationMarker(); //NONE  
            }
        }