0

我尝试使用 Javascript 和 Snowflake 复制采用 Lat 和 Long 并返回 ZIP Code 的函数。代码来自这里的 SO 问题。(代码归功于@HBlackorby)

下面是函数:

CREATE OR REPLACE FUNCTION STAGING.SDS.GET_ZIP_CODE(latitude FLOAT, longitude FLOAT)
RETURNS STRING
LANGUAGE JAVASCRIPT
AS
$$
function getzip(lat, lng) {
var latlng = new google.maps.LatLng(lat, lng);
geocoder = new google.maps.Geocoder();
    geocoder.geocode({'latLng': latlng}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            if (results[0]) {
                for (j = 0; j < results[0].address_components.length; j++) {
                    if (results[0].address_components[j].types[0] == 'postal_code')
                        alert("Zip Code: " + results[0].address_components[j].short_name);
                }
            }
        } else {
            alert("Geocoder failed due to: " + status);
        }
    });
}
$$

输出:

SELECT STAGING.SDS.GET_ZIP_CODE('39.041519165', '-77.111801147');

JavaScript execution error: Uncaught ReferenceError: google is not defined in GET_ZIP_CODE at 'var latlng = new google.maps.LatLng(lat, lng);' position 13 stackstrace: getzip line: 3 GET_ZIP_CODE line: 18

预期输出:

20852
4

1 回答 1

0

您只能使用JavaScript 标准库存储过程 API中的对象。
您不能从谷歌导入任何外部库(截至 2019 年 10 月)。

于 2019-10-09T06:20:26.577 回答