blob: 72ed0d3bfb48abd901aec2f6df1cea4810c81714 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
package org.traccar.web.client;
import com.smartgwt.client.widgets.layout.SectionStack;
import com.smartgwt.client.widgets.layout.SectionStackSection;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.WidgetCanvas;
import com.smartgwt.client.widgets.events.ResizedEvent;
import com.smartgwt.client.widgets.events.ResizedHandler;
import com.smartgwt.client.widgets.events.DragResizeStopEvent;
import com.smartgwt.client.widgets.events.DragResizeStopHandler;
import com.smartgwt.client.widgets.events.DrawEvent;
import com.smartgwt.client.widgets.events.DrawHandler;
import com.smartgwt.client.types.Overflow;
import com.google.gwt.core.client.Scheduler;
import org.gwtopenmaps.openlayers.client.LonLat;
import org.gwtopenmaps.openlayers.client.Map;
import org.gwtopenmaps.openlayers.client.MapOptions;
import org.gwtopenmaps.openlayers.client.MapWidget;
import org.gwtopenmaps.openlayers.client.Projection;
import org.gwtopenmaps.openlayers.client.control.LayerSwitcher;
import org.gwtopenmaps.openlayers.client.control.OverviewMap;
import org.gwtopenmaps.openlayers.client.control.ScaleLine;
import org.gwtopenmaps.openlayers.client.layer.OSM;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
import com.google.gwt.event.logical.shared.AttachEvent;
import org.gwtopenmaps.openlayers.client.layer.*;
/**
* Map panel widget
*/
public class MapPanel extends SectionStack {
private final static int BORDER_SIZE = 1;
private MapWidget mapWidget;
private WidgetCanvas mapWrapper;
private MapWidget createMapWidget() {
MapOptions defaultMapOptions = new MapOptions();
defaultMapOptions.setNumZoomLevels(16);
MapWidget mapWidget = new MapWidget("100%", "100%", defaultMapOptions);
// Google layer
/*GoogleV3Options layerOptiond = new GoogleV3Options();
layerOptiond.setIsBaseLayer(true);
layerOptiond.setType(GoogleV3MapType.G_NORMAL_MAP);
GoogleV3 layer = new GoogleV3("Google", layerOptiond);*/
// Open Street Map layer
OSM layer = OSM.Mapnik("Mapnik");
layer.setIsBaseLayer(true);
Map map = mapWidget.getMap();
map.addLayer(layer);
map.addControl(new ScaleLine());
// Default center
LonLat lonLat = new LonLat(12.5, 41.9);
lonLat.transform(new Projection("EPSG:4326").getProjectionCode(), map.getProjection());
map.setCenter(lonLat, 1);
return mapWidget;
}
public MapPanel() {
SectionStackSection section = new SectionStackSection("Map");
section.setCanCollapse(false);
section.setExpanded(true);
mapWidget = createMapWidget();
mapWrapper = new WidgetCanvas(mapWidget);
mapWrapper.setStyleName("defaultBorder");
mapWrapper.setHeight100();
mapWrapper.setWidth100();
// Map widget size hack
mapWrapper.addDrawHandler(new DrawHandler() {
@Override
public void onDraw(DrawEvent event) {
Element e = DOM.getElementById(mapWrapper.getID() + "_widget");
if (e.getParentNode() != null) {
e.getParentElement().getStyle().setProperty("width", "100%");
e.getParentElement().getStyle().setProperty("height", "100%");
}
}
});
// Map resize handler
mapWrapper.addResizedHandler(new ResizedHandler() {
@Override
public void onResized(ResizedEvent event) {
mapWidget.getMap().updateSize();
}
});
section.setItems(mapWrapper);
setSections(section);
}
}
|