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——著

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