]> git.openstreetmap.org Git - rails.git/blobdiff - db/functions/quadtile.c
QuadTile infrastructure.
[rails.git] / db / functions / quadtile.c
diff --git a/db/functions/quadtile.c b/db/functions/quadtile.c
new file mode 100644 (file)
index 0000000..7d17f6f
--- /dev/null
@@ -0,0 +1,31 @@
+#include <my_global.h>
+#include <my_sys.h>
+#include <m_string.h>
+#include <mysql.h>
+#include <quad_tile.h>
+
+my_bool tile_for_point_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
+{
+   if ( args->arg_count != 2 ||
+        args->arg_type[0] != INT_RESULT ||
+        args->arg_type[1] != INT_RESULT )
+   {
+      strcpy( message, "Your tile_for_point arguments are bogus!" );
+      return 1;
+   }
+
+   return 0;
+}
+
+void tile_for_point_deinit(UDF_INIT *initid)
+{
+   return;
+}
+
+long long tile_for_point(UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error)
+{
+   long long lon = *(long long *)args->args[0];
+   long long lat = *(long long *)args->args[1];
+
+   return xy2tile(lon2x(lon / 1000000.0), lat2y(lat / 1000000.0));
+}