Re: [問題] 請問在GWT上用Google Map API

看板java作者 (強尼戴爾)時間11年前 (2014/05/17 20:18), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/5 (看更多)
經過一陣try and wait compile後發現,其實是因為沒有load js 要在project.gwt.xml中加上<script>的tag去load Google map js api 可是呢 不知為啥我的project compile說不support script tag.. 只能在project.html去加,最終加上去後算是成功了一半 首先是這樣做以後地圖確實是出現了 可以隨意的放進panel 再把panel隨意的丟進window 都OK沒有問題 但是第一次的onClick()是正確 出現地圖 且中心點是所給的location 而且有一個marker並有info window 但再次點button去叫出該地圖卻出現中心點跑掉的現象.. 就算是有 map.checkResizeAndCenter(); 也是一樣的情形 此外 以下的code是 gwt-map.1.1.1.jar 的語法 要inherits的是 com.google.gwt.maps.GoogleMap 而<script>要load的也必須是version 2的Google Map js 若是要使用v3的Google Map js 必須改用 gwt-map.3.8.1.jar 而要inherits的會變成 com.google.maps.gwt.GoogleMap 當然<script>的URL也必須是v3的版本 此外code的語法亦不同 加入panel的方法是: GoogleMap gMap = GoogleMap.create(panel.getElement(), options); 其中options是 MapsOptions options = new MapsOptions(); 可惜的是在我的project加上去地圖始終不會出現.. 不曉得是否是因為GWT版本的問題就是 ※ 引述《PsMonkey (痞子軍團團長)》之銘言: : ※ 引述《JohnnyDell (強尼戴爾)》之銘言: : : 真是不好意思 剛剛發文發太急 下方連結重新排版一下 : : http://paste.ideaslabs.com/show/Q0ThysUrSF : : 這是mapWindowForm.class : 在這個版本的 code 當中 : X [嗶] X [嗶],我完全看不出來 map 有加到 DOM 的可能 : 上一個版本你加了三次 map : (萬一是你自己 comment 沒 mark 乾淨不要怪人) : 這次你指 new 完 MapWidget() 之後就放著沒再幹麼? : 所以這到底是...... WT... : 我只能懇求上天,你下面這些方法都是各自獨立測試的 : : 下方這些是大概一些試過的方式 : : 1. Panel panel = new FormPanel(); panel.add(map); add(panel); : 所以 panel、mapWindowForm、DOM 之間的關係是? : : 2. final DockLayoutPanel dock = new DockLayoutPanel(Unit.PX); : : dock.addNorth(map, 500); : : RootLayoutPanel.get().add(dock); : 這個跟 mapWindowForm 的關係是? : 然後這個執行結果是? : : 3. add(map, new AbsoluteData(35,35)); : : 4. add(panel); : (我不想再重複寫一樣的話了) : (還有那個神 AbsoluteData()) : : 另外就是 在第24行 if (!Maps.isLoaded()) 這裡檢查了MapApi有沒有被load : : 但是我發現我第一次點該按鈕的時候會跳出 25行的Window.alert : : 可是之後再點就不會 refresh web page後第一次點又跳出Window.alert : : 所以我也懷疑是否MapApi其實一直並沒有被load in成功 : : 在Maps.loadMapsApi()的第二個參數應該是API version : 因為 Map API 的 js 已經被 cache 了 : 不然你每次 refresh 之前都清除 cache : 雖然我沒實際測過,不過我可以先壓 500P 每次都會跳 alert : 其他我不想回了,只能再講一次,請搞清楚你到底在幹麼 : 有任何不確定的東西,要嘛看 source code : 要嘛(如果程度跟我一樣 low)就寫測試 code 去驗證 : 如果我也懷疑起什麼 V2 還是三小朋友的可能性 : 那麼 : public class FooEP extends EntryPoint { : @Override : public void onModuleLoad() { : Maps.loadMapsApi("*****", "2", false, new Runnable() { : public void run(){ : buildUi(); : } : }); : LatLng location = mockLatLng(); : private void buildUi() { : final MapWidget map = new MapWidget(location, 2); : map.setSize("500px", "500px"); //奸笑 : RootPanel.get().add(map); : } : } : 其餘 BJ4 : ==== : 我得了一種看到 GWT 文章不回就會死的病 : 只是我回了之後覺得更想死 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.238.68 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1400329110.A.1A6.html
文章代碼(AID): #1JTrEM6c (java)
文章代碼(AID): #1JTrEM6c (java)