double lat = *(long long *)args->args[0] / 10000000.0;
double lon = *(long long *)args->args[1] / 10000000.0;
long long zoom = *(long long *)args->args[2];
-
+
return internal_maptile_for_point(lat, lon, zoom);
}
#endif
#ifdef USE_PGSQL
+#ifdef USE_MYSQL
+#error ONLY one of USE_MYSQL and USE_PGSQL should be defined
+#endif
+
#include <postgres.h>
#include <fmgr.h>
double lat = PG_GETARG_INT64(0) / 10000000.0;
double lon = PG_GETARG_INT64(1) / 10000000.0;
int zoom = PG_GETARG_INT32(2);
-
+
PG_RETURN_INT32(internal_maptile_for_point(lat, lon, zoom));
}
PG_FUNCTION_INFO_V1(maptile_for_point);
+/*
+ * To bind this into PGSQL, try something like:
+ *
+ * CREATE FUNCTION maptile_for_point(int8, int8, int4) RETURNS int4
+ * AS '/path/to/rails-port/db/functions/libpgosm', 'maptile_for_point'
+ * LANGUAGE C STRICT;
+ *
+ * (without all the *s)
+ */
+
#ifdef PG_MODULE_MAGIC
PG_MODULE_MAGIC;
#endif