使用GWT Maps v3更新地图时出现问题

时间:2016-03-10 12:54:56

标签: gwt google-maps-api-3

我刚刚下载了enter image description here

我安装了它并复制&从他们的演示中粘贴了一些代码。地图已加载并正确显示。然而,除了这个小概述演示之外,还没有关于如何使用MapsWidget的进一步说明...所以我(可能)有一个简单的问题(但由于缺少文档,我无法自学如何正确使用库)。

这是我的代码所做的。我有一个lat / lon坐标列表,我想在地图上显示此路径的折线。所以,这些是我的程序必须要做的步骤:

  1. 初始化MapWidget并显示地图(作品)
  2. 如果选择了新路线(不起作用),则更新MapWidget
  3. 所以,这是我的代码(仍然忽略了航点):

    public class MapsDemoWidget extends SimplePanel {
    
        private static MapWidget mapWidget;
        ArrayList<WayPoint> waypoints;
        public MapsDemoWidget(ArrayList<WayPoint> waypoints) {
            this.waypoints = waypoints;
            loadMapApi();
        }
    
        private void loadMapApi() {
            boolean sensor = true;
    
            // load all the libs for use in the maps
            ArrayList<LoadLibrary> loadLibraries = new ArrayList<LoadApi.LoadLibrary>();
            loadLibraries.add(LoadLibrary.DRAWING);
            loadLibraries.add(LoadLibrary.GEOMETRY);
            loadLibraries.add(LoadLibrary.VISUALIZATION);
    
            Runnable onLoad = new Runnable() {
              @Override
              public void run() {
                 drawMap();
              }
            };
    
            LoadApi.go(onLoad, loadLibraries, sensor);
          }
    
    
        private void drawMap() {
            LatLng centerCoords = LatLng.newInstance(52.499095d,13.406220d);
            MapOptions opts = MapOptions.newInstance();
            opts.setZoom(14);
            opts.setCenter(centerCoords);
            opts.setMapTypeId(MapTypeId.ROADMAP);
    
            mapWidget = new MapWidget(opts);
            mapWidget.setSize("750px", "500px");
            this.add(mapWidget);
          }
    
    }
    

    正如您所看到的:这几乎是示例代码中的代码。现在在其他一些小部件中,我执行以下操作:

    mapsWidget = new MapsDemoWidget(waypoints);
    flex.setWidget(mapWidgetRow, 0, mapsWidget);
    

    如果用户选择另一个路由,则后一个代码被再次调用。 所以基本上,第一次执行代码并正确绘制地图。然后,在选择了另一个路径之后,再次执行该代码。但是,在第二次地图保持灰色后。

    图形显示结果。如您所见,在第二步中,显示地图但没有卡片。在第二步中,地图已完全与第一次一样添加到网站。

    https://github.com/branflake2267/GWT-Maps-V3-Api

1 个答案:

答案 0 :(得分:2)

添加MapDemoWidget来电mapWidget.triggerResize();后 它应该解决这个问题。