运行GWT Map时出错 - Maps键是丢失还是无效?

时间:2014-06-23 04:24:32

标签: java google-maps gwt smartgwt

我正在尝试将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

3 个答案:

答案 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&amp;file=api&amp;v=2"></script>