GEE(google earth engine)get函数读取及set函数设置URL的参数的注意事项

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

 

官方文档,带参数的URL如下:

https://code.earthengine.google.com/5695887aad76979388a723a85339fbf2#debug=false;
https://code.earthengine.google.com/5695887aad76979388a723a85339fbf2#debug=true;

上面的URL带有一个参数debug,第一个是false第二个是true。

//读取URL中debug的值。get的第二个参数是默认值,即如果URL没有debug的参数值则使用此值。
//在下面三个网址中通过get获取值时,前两个是得到的false,第三个是true。
var debug = ui.url.get('debug', false);


//https://code.earthengine.google.com/
//https://code.earthengine.google.com/5695887aad76979388a723a85339fbf2#debug=false;
//https://code.earthengine.google.com/5695887aad76979388a723a85339fbf2#debug=true;

//设置URL中debug的值。
//在上面三个网址中通过set设置值时,后两个都会变成第三个。
//第一个会变成https://code.earthengine.google.com/#debug=true;
ui.url.set('debug',true);

所以就会有一个比较奇妙的现象:在下图所示的情况下,执行第一次输出为true,执行第二次及更多次则输出为false。 

为什么这样呢?因为script编辑器中的代码,在执行的时候,从URL获取到debug的值是true,所以get的第二个参数false没有用处,第二个参数只在URL没有debug值的时候才有用。第二行代码是设置URL的debug值为false,但script编辑器中的debug变量还是之前读取的true,所以输出为true。而第二次运行后,URL的debug值是false了,后面再执行set操作还是false,所以后面就输出的是false。

如果script编辑器中的第一行和第二行交换,则不论怎么执行,都会是同样的输出结果。

附注:其实这个也好理解,附上JavaScript代码如下,上面的123行分别对应下面的234行:

var a=1;
var b=a;
a=2;
alert(b+' '+a)
//提示结果是:1 2

提醒:千万别直接修改URL的值,因为你修改了浏览器地址栏的URL但没有跳转到修改后的URL,这个URL是没用的。

 

独孤尚良dugushangliang——著

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