【发布时间】:2018-09-12 21:15:24
【问题描述】:
我想将 google 的开放位置代码 javascript 实现放入 PostgreSQL(使用 plv8 extension),并使其可用于从 PostGIS 几何/地理数据类型进行编码/解码。
虽然我成功了,但我无法弄清楚如何只为 https://github.com/google/open-location-code/blob/master/js/src/openlocationcode.js 文件创建一个函数,最后我将该函数的副本放入需要编码/解码的每个函数中加上代码。当我试图将其拉出到它自己的函数中时,我可以得到一个包含 javascript 的字符串或 [Object],[object] 的字符串,而不是一个可调用的函数。
PostgreSQL 中的 plv8 扩展可以做到这一点吗?
不完整的代码sn-p示例(full version here):
DROP FUNCTION IF EXISTS olc.encode(float,float,integer);
CREATE OR REPLACE FUNCTION olc.encode(
p_latitude double precision,
p_longitude double precision,
p_code_length integer DEFAULT 10
)
RETURNS text AS
$BODY$
var f = function () {
var OpenLocationCode = {};
/**
* Provides a normal precision code, approximately 14x14 meters.
* @const {number}
*/
OpenLocationCode.CODE_PRECISION_NORMAL = 10;
/**
* Provides an extra precision code, approximately 2x3 meters.
* @const {number}
*/
OpenLocationCode.CODE_PRECISION_EXTRA = 11;
// A separator used to break the code into two parts to aid memorability.
var SEPARATOR_ = '+';
// The number of characters to place before the separator.
var SEPARATOR_POSITION_ = 8;
// The character used to pad codes.
var PADDING_CHARACTER_ = '0';
【问题讨论】:
标签: postgresql plv8