我安装了它并复制&从他们的演示中粘贴了一些代码。地图已加载并正确显示。然而,除了这个小概述演示之外,还没有关于如何使用MapsWidget的进一步说明...所以我(可能)有一个简单的问题(但由于缺少文档,我无法自学如何正确使用库)。
这是我的代码所做的。我有一个lat / lon坐标列表,我想在地图上显示此路径的折线。所以,这些是我的程序必须要做的步骤:
所以,这是我的代码(仍然忽略了航点):
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);
如果用户选择另一个路由,则后一个代码被再次调用。 所以基本上,第一次执行代码并正确绘制地图。然后,在选择了另一个路径之后,再次执行该代码。但是,在第二次地图保持灰色后。
图形显示结果。如您所见,在第二步中,显示地图但没有卡片。在第二步中,地图已完全与第一次一样添加到网站。
答案 0 :(得分:2)
添加MapDemoWidget
来电mapWidget.triggerResize();
后
它应该解决这个问题。