@SuppressWarnings("unchecked")
	public String printWay(String key, Long id, Cat2OsmUtils utils){
		String s = "";

		// Si un way no tiene mas de dos nodos, es incorrecto
		if (nodos.size()<2){
			System.out.println("Way id="+ id +" con menos de dos nodos. No se imprimira.");
			return "";
		}

		// Si no pertenece a ningun shape porque se ha visto que no tenia tags representativos
		// o se ha delimitado la busqueda
		if (shapes.isEmpty()){
			return "";
		}


		// Si pertenece a algun shape, es decir si sus shapes no se han desechado por no tener informacion relevante
		if (!shapes.isEmpty()){
			s = ("<way id=\""+ id +"\" timestamp=\""+new Timestamp(new Date().getTime())+"\" version=\"6\">\n");

			// Referencias a los nodos
			for (Long nodeId : nodos)
				if (((WayOsm) utils.getKeyFromValue((Map<String, Map<Object, Long>>) ((Object)utils.getTotalWays()), key, id)).getNodes().contains(nodeId) )
					s += ("<nd ref=\""+ nodeId +"\"/>\n");


			// Mostrar los shapes que utilizan este way, para debugging
			if (shapes != null && Config.get("PrintShapeIds").equals("1"))
				for (int x = 0; x < shapes.size(); x++)
					s += "<tag k=\"CAT2OSMSHAPEID"+x+"\" v=\""+shapes.get(x)+"\"/>\n";

			s += ("</way>\n");
		}
		return s;
	}