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

楼主: JohnnyDell (强尼戴尔)   2014-05-05 21:08:22
※ 引述《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的情况
感谢
: 当然,更重要的事情是
: 请搞清楚你到底在写什么

Links booklink

Contact Us: admin [ a t ] ucptt.com