※ 引述《PsMonkey (痞子軍團團長)》之銘言:
: 唉... 你說我到底該不該回文呢
: (謎之聲:你這不是回了嗎? [總統調])
: anyway,不想看酸文的可以直接跳最後
: ※ 引述《JohnnyDell (強尼戴爾)》之銘言:
: : 請問各位大大 我目前需要在一個web service的系統上加上一個小功能
: : 就是點一個按鈕->出現一個視窗->顯示Google地圖->把定點置中
: : 由於該系統是以GWT來做 所以找了Google Map for GWT (gwt-map-1.1.1.jar)
: : 該系統目前已有一個abstract WindowForm.class是extend FormPanel
: : 於是我寫了一個mapWindowForm.class extend WindowForm
: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: 你的程式碼沒有(整齊)縮排,這就算了
: 問題是內容寫的不明不白
: 1. 你貼出來的內容是 mapWindowForm 這個 class 的內容嗎?
: 2. WindowForm 有沒有藏什麼哏?
: 或著說,你為什麼不先用其他(單純)的 widget/panel 試試看?
: 萬一我們看了老半天,結果你這程式跟 mapWindowForm 沒關係
: 或是根本就是 WindowForm 藏了什麼哏所以這樣那樣
: 那是要我(們)這些看文章回文章的人怎麼辦?
: 然後就會有人說:「棍!你不爽回就不要回,酸人幹麼?」
真是不好意思 剛剛發文發太急 下方連結重新排版一下
http://paste.ideaslabs.com/show/Q0ThysUrSF
這是mapWindowForm.class
: : 當user click按鈕會呼叫這個mapWindowForm.class 到這邊沒有問題
: : 問題出在我不知道要如何將map顯示在這個Form上..
: : http://paste.ideaslabs.com/show/GnqtHbIsea
: : 大致上貼上code 有些import跟宣告就沒貼了
: : 在showForm()中 先Map.loadMapApi (***是小弟的API Key打上馬賽克)
: : buildUi()中則是依照官網介紹作的 就是弄出一個map
: : 最後試了幾種方法 可是無法將map add進這個form..
: 所以我(們)到底是要看你下面這段程式碼
: 還是看 ideaslabs 的程式碼?
: 兩邊程式碼根本不一樣阿?
下方這些是大概一些試過的方式
1. Panel panel = new FormPanel(); panel.add(map); add(panel);
2. final DockLayoutPanel dock = new DockLayoutPanel(Unit.PX);
dock.addNorth(map, 500);
RootLayoutPanel.get().add(dock);
3. add(map, new AbsoluteData(35,35));
4. add(panel);
: : Panel panel;
: : panel = new FormPanel();
: : panel.add(map);
: ^^^^^^^^^^^^^^^^
: : add(map, new AbsoluteData(35, 35));
: ^^^^^^^^
: : add(panel);
: ^^^^^^^^^^^^
: : dock.addNorth(map, 500);
: : RootLayoutPanel.get().add(dock);
: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: 誰上頭有 `map`(或著說誰 add `map`?)
: 答案是... 居然有三個
: 變數 panel(FormPanel)
: 某某某(應該是 mapWindowForm?)
: 還有根本不知道是誰的變數 dock
: 我不確定有兩個以上的 widget 同時加一個 widget instance 會怎樣
: 沒記錯的話好像最後加的才會有效
: (以你的例子,是那個不知道是誰的 dock)
: 至於 panel、dock、還有某某某會不會顯示在螢幕上(或說 DOM 裡頭)
: 是誰讓它顯示的(RootLayoutPanel? PopupPanel? 還是?)
: 不知道... 甚至可能沒人知道
: (CSS、沒撐開之類的哏就完全跳過)
: =====================================
: 總而言之,請先作這兩件事情
: 1. 你先用 Button/Label 代替 MapWidget
: 來排除是不是 MapWidget 有什麼鬼怪之處
button這些事可以被add()在這類form的,因為系統已有很多這種form
uploadForm.class 或者 editForm.class 之類的
都是extends windowForm.class(這隻abstract class是extends FormPanel)
: 2. 給三個不同的 MapWidget instance
不好意思 不大清楚版大這句話的意思是?
其實應該是要問 我有一個 MapWidget 該怎麼在一個FormPanel上顯示?
所以應該是FormPanel讓MapWidget顯示的?
是需要先把Widget放進什麼container才能放到Panel上?
另外就是 在第24行 if (!Maps.isLoaded()) 這裡檢查了MapApi有沒有被load
但是我發現我第一次點該按鈕的時候會跳出 25行的Window.alert
可是之後再點就不會 refresh web page後第一次點又跳出Window.alert
所以我也懷疑是否MapApi其實一直並沒有被load in成功
在Maps.loadMapsApi()的第二個參數應該是API version
我給"2" 也應該沒有錯才是? GWT-map.1.1.1.jar是說for Map v2
雖然在Google console申請的API key看起來是enable Map v3?
不過應該是可以通用的? 但第一次點確實出現Map.isLoaded是false的情況
感謝
: 當然,更重要的事情是
: 請搞清楚你到底在寫什麼