不過啊,目標很漂亮,做起來卻很複雜,要讓多種插件同時運作而不能讓插件彼此之間互相干擾,而且因為是在 Google 的本站執行,所以還要絕對避免 XSS 之類安全性的問題。可以研究一下 Mapplet 的說明文件,首先讓插件的 script 在 iframe 中執行,然後提出一個和普通版本很不一樣的 Google Map api,用了大量的非同步方式執行,也不允許在地圖上增加圖層,除了這些,也是因為安全性的問題,他不允許在 InfoWindow 中使用 javascript,也只只能使用有限的 html 功能。最後這一點讓 Flickr GMap Show 以前的運作方式 (在 InfoWindow 中瀏覽同一地區的照片) 完全行不通了,所以要改一個形式來呈現了。技術細節就不提了,雖然 api 變成這樣難用很多,一開始我也不懂為什麼要弄得這麼複雜,但後來仔細想過就覺得 Google 做得很不錯,如果其他的人想要做類似的事想必也是搞出類似的東西。這個功能如果正式推出應該會受到好評的 (不過我對趨勢的看法一向不太準啊@@)。
點選這個
基本上在右邊地圖上不能搞的事就只好移到左邊的 iframe 中執行,原本是在 InfoWindow 中去瀏覽同一地區的照片,因為要用到 javascript 所以就移到左邊,而在 InfoWindow 中就隨機抓一張出來顯示。而因為多了很多非同步函式的呼叫,所以感覺會比較卡卡的,也因為查詢和運算時不能把地圖遮起來 (不能新增圖層),所以只把左邊的遮起來意思一下。而目前也可以在左邊欄上的"編輯設定"中設定年月和搜尋的標籤。
感想就是,要讓 Javascript 可以同時跑在 Firefox 和 IE 真是要花不少工夫和不少經驗啊,難怪 Javascript 這麼少人精通的,我看不是因為錯以為它太簡單,而是根本就太困難了啊…:)。不知道怎麼才能讓 mapplet 出現在 Google 的工具集裡呢,是不是只要提給 Google 就可以了?@@
2 comments:
加油~ 做的讚啊!
我有用,很棒 :D
不過GM版的還是沒辦法擺放照片,可以拖拉,但拉到地圖上放開,就什麼都沒有 XD
Post a Comment