我正在尝试将gwt地图集成到我的SmartGWT应用中。但由于某种原因,我收到了这个错误。有人可以帮我解决一下。我使用此链接作为我的参考http://forums.smartclient.com/showthread.php?t=3366。
我得到的错误是 未捕获的异常转义:java.lang.RuntimeException 尚未加载Maps API。 主机HTML或模块文件中是否缺少标记?地图密钥是否缺失或无效? 请参阅开发控制台日志以获取详细信 注册GWT.setUncaughtExceptionHandler(..)以进行自定义未捕获的异常处理。
//This is added in my module file and i am using Maps v2 API 1.1.1
<inherits name='com.google.gwt.maps.GoogleMaps' />
HomeViewImpl homePanel = new HomeViewImpl();
addTab(homePanel, "Home", "Home");
============================================== < / p>
public class HomeViewImpl extends VLayout
{
private MapWidget getMap()
{
/*MapWidget map = new MapWidget();
map.setSize("500px", "300px");
map.addControl(new LargeMapControl());
map.getInfoWindow().open(map.getCenter(), new InfoWindowContent(getMapInfoWindow()));
return map;*/
LatLng cawkerCity = LatLng.newInstance(-22.82, -47.26);
final MapWidget map = new MapWidget();
map.setScrollWheelZoomEnabled(true);
map.addControl(new LargeMapControl());
map.addOverlay(new Marker(cawkerCity));
map.getInfoWindow().open(map.getCenter(),
new InfoWindowContent("World's Largest Ball of Sisal Twine"));
return map;
}
public Canvas getViewPanel()
{
HLayout hLayout = new HLayout(5);
hLayout.addMember(new Label("Dummy Label in a Horizontal Layout"));
// Add the map to the HTML host page
hLayout.addMember(getMap());
return hLayout;
}
private Canvas getMapInfoWindow()
{
final TabSet topTabSet = new TabSet();
topTabSet.setTabBarPosition(Side.TOP);
topTabSet.setWidth(200);
topTabSet.setHeight(100);
Tab tTab1 = new Tab("Blue");
HTMLPane tab1Pane = new HTMLPane();
tab1Pane.setContents("Hello. This sample shows a google map widget taking part in a SmartGWT Layout");
tTab1.setPane(tab1Pane);
Tab tTab2 = new Tab("Green");
HTMLPane tab2Pane = new HTMLPane();
tab2Pane.setContents("Google Maps InfoWindow can display SmartGWT Widgets");
tTab2.setPane(tab2Pane);
topTabSet.addTab(tTab1);
topTabSet.addTab(tTab2);
return topTabSet;
}
@Override
public Widget asWidget()
{
return getViewPanel();
}
}
欢呼声 Zolf
答案 0 :(得分:1)
这里发生了一些事情。
Google Maps v2不再可用。请阅读Upgrading Your Google Maps JavaScript Application To v3。您提供的链接是从2008年开始的,并且确实已经过时了。
其次,Google地图(v2或v3)在主机HTML页面中需要有效的许可证密钥。 GWT有一个主机HTML页面,用于启动GWT应用程序。 Google地图密钥可以在此处显示。
您还需要更新的GWT Google maps API才能使用Maps v3。有一些可用。
此致 托马斯。
答案 1 :(得分:0)
你必须像这样创建地图和加载数据,
Maps.loadMapsApi("", "2", false, new Runnable() {
public void run() {
// add your widget with map
}
});
请参阅此链接,例如:http://code.google.com/p/gwt-google-apis/wiki/MapsGettingStarted &安培;下载并使用本例中使用的jar。
答案 2 :(得分:0)
好的问题是我的情况是我还必须将此scropt添加到我的模块文件中。添加此解决了错误并显示了Map。
<script src="http://maps.google.com/maps?gwt=1&file=api&v=2"></script>