GEE(google earth engine)通过exports和require实现调用模块或另一个脚本文件

版权声明:转载请注明作者(独孤尚良dugushangliang)出处:https://blog.csdn.net/dugushangliang/article/details/105574991

 

官方文档,下面这段代码是用于被调用的,可以当做是一个模块,把它保存为js文件。exports表示输出,即表明了这个文件可以被外部引用的代码部分。提供给外部调用的变量或函数都依附于exports这个对象。

exports.doc = 'The Foo module is a demonstration of script modules.' +
    '\n It contains a foo function that returns a greeting string. ' +
    '\n It also contains a bar object representing the current date.' +
    '\n' +
    '\n foo(arg):' +
    '\n   @param {ee.String} arg The name to which the greeting should be addressed' +
    '\n   @return {ee.String} The complete greeting.' +
    '\n' +
    '\n bar:' +
    '\n   An ee.Date object containing the time at which the object was created.';

exports.foo = function(arg) {
  return 'Hello, ' + arg + '!  And a good day to you!';
};

exports.bar = ee.Date(Date.now());

如下图所示,文件保存在print这个Git库中,Modules是文件夹,FooModule.js是文件名。如果调用这个模块,使用 require来实现。require表示模块的引入。这个require的参数需要注意下。这里有个冒号(‘:’),冒号前面的就是Git库的名字,冒号后面的就是文件路径。右侧输出的时间是格林尼治时间,我们使用的北京时间是东八区,所以我们的北京时间需要在格林尼治时间基础上加上8个小时。

具体调用方法如下所示: 

var Foo = require('users/dugushangliang/print:Modules/FooModule.js');
//如果需要调用的模块文件直接在print这个Git库下,则路径表示为下面这样。
//var Foo = require('users/dugushangliang/print:FooModule.js');

print(Foo.doc);

print(Foo.foo('world'));

print('Time now:', Foo.bar);

需要注意的是:这个保存的文件如果不带后缀,即不是FooModule.js,而是FooModule,需要使用下面的代码来调用。

var Foo = require('users/dugushangliang/print:Modules/FooModule');

建议:最好带上这个后缀名,一个是考虑到规范,一个是调用FooModule.js比FooModule好像更快,可能是因为没有后缀名的还需要判断这个文件是什么类型。

 

独孤尚良dugushangliang——著

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章