Re: [问题] 请问在GWT上用Google Map API

楼主: JohnnyDell (强尼戴尔)   2014-05-17 20:18:27
经过一阵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 文章不回就会死的病
: 只是我回了之后觉得更想死

Links booklink

Contact Us: admin [ a t ] ucptt.com