--- taxonomy_resource.inc.orig	2011-05-23 10:57:19.000000000 -0600
+++ taxonomy_resource.inc	2011-05-23 13:05:01.000000000 -0600
@@ -276,6 +276,21 @@ function _taxonomy_resource_definition()
             ),
           ),
         ),
+        'tagadelic' => array(
+          'file' => array('type' => 'inc', 'module' => 'services', 'name' => 'resources/taxonomy_resource'),
+          'help'   => t('This method returns a tag cloud (requires Tagadelic).'),
+          'access arguments' => array('access content'),
+          'callback' => 'taxonomy_service_tagadelic',
+          'args'     => array(
+            array(
+              'name'         => 'vids',
+              'type'         => 'array',
+              'description'  => t('The vocabulary ids to retrieve.'),
+              'source'       => 'data',
+              'optional'     => FALSE,
+            ),
+          ),
+        ),        
       ),
     ),
   );
@@ -439,6 +454,19 @@ function taxonomy_service_get_tree($vid,
 }
 
 /**
+ * Services interface to taxonomy_get_tree().
+ *
+ * @see taxonomy_get_tree()
+ */
+function taxonomy_service_tagadelic($vids) {
+  $terms = tagadelic_sort_tags(tagadelic_get_weighted_tags($vids));
+  if (empty($terms)) {
+    return services_error(t('No vocabulary with id @vid found.', array('@vid' => $vid)), 404);
+  }
+  return $terms;
+}
+
+/**
  * Services interface to taxonomy_select_nodes().
  *
  * Note that where taxonomy_select_nodes() returns the results
