source: gs3-extensions/map-editor/DrawingManager/historyManager.js@ 32710

Last change on this file since 32710 was 32710, checked in by ak19, 5 years ago

Overlay history variables and methods.

File size: 4.2 KB
Line 
1var prevOverlays = [];
2
3function undoMovement() {
4 console.log("*** undoMovement called");
5 for (var i = 0; i < overlays.length; i++) {
6 overlays[i].setMap(null);
7
8 }
9
10 overlays = [];
11
12 var prev_overlay = prevOverlays.pop();
13
14 for (var i = 0; i < prev_overlay.length; i++) {
15 overlays[i] = prev_overlay[i];
16 overlays[i].setMap(map);
17 }
18
19}
20
21function clonePath(path)
22{
23 var clone_path = [];
24
25 for (var i = 0; i < path.length; i++) {
26 var lati = path.getAt(i).lat();
27 var lngi = path.getAt(i).lng();
28 clone_lat_lng = {
29 lat: lati,
30 lng: lngi
31 };
32 clone_path.push(clone_lat_lng);
33 }
34
35 return clone_path;
36}
37
38function clonePolyline(polyline)
39{
40 var path = polyline.getPath();
41 var geodesic = polyline.geodesic;
42 var strokeColor = polyline.strokeColor;
43 var strokeOpacity = polyline.strokeOpacity;
44 var strokeWeight = polyline.strokeWeight;
45
46 var clone_path = clonePath(path);
47
48 var clone_polyline = new google.maps.Polyline({
49 geodesic: geodesic,
50 strokeColor: strokeColor,
51 strokeOpacity: strokeOpacity,
52 strokeWeight: strokeWeight,
53 path: clone_path
54 });
55
56 clone_polyline.type = google.maps.drawing.OverlayType.POLYLINE;
57
58 return clone_polyline;
59}
60
61function clonePolygon(polygon)
62{
63 var path = polygon.getPath();
64 var geodesic = polygon.geodesic;
65 var strokeColor = polygon.strokeColor;
66 var strokeOpacity = polygon.strokeOpacity;
67 var strokeWeight = polygon.strokeWeight;
68 var fillColor = polygon.fillColor;
69 var fillOpacity = polygon.fillOpacity;
70
71 var clone_path = clonePath(path);
72
73 var clone_polygon = new google.maps.Polygon({
74 geodesic: geodesic,
75 strokeColor: strokeColor,
76 strokeOpacity: strokeOpacity,
77 strokeWeight: strokeWeight,
78 fillColor: fillColor,
79 fillOpacity: fillOpacity,
80 path: clone_path
81 });
82
83 clone_polygon.type = google.maps.drawing.OverlayType.POLYGON;
84
85 return clone_polygon;
86}
87
88function cloneRectangle(rect)
89{
90 var strokeColor = rect.strokeColor;
91 var strokeOpacity = rect.strokeOpacity;
92 var strokeWeight = rect.strokeWeight;
93 var fillColor = rect.fillColor;
94 var fillOpacity = rect.fillOpacity;
95 var bounds = rect.getBounds();
96
97 var clone_rect = new google.maps.Rectangle({
98 strokeColor: strokeColor,
99 strokeOpacity: strokeOpacity,
100 strokeWeight: strokeWeight,
101 fillColor: fillColor,
102 fillOpacity: fillOpacity,
103 bounds: bounds
104 });
105
106 clone_rect.type = google.maps.drawing.OverlayType.RECTANGLE;
107
108 return clone_rect;
109}
110
111function cloneCircle(circ)
112{
113 var strokeColor = circ.strokeColor;
114 var strokeOpacity = circ.strokeOpacity;
115 var strokeWeight = circ.strokeWeight;
116 var fillColor = circ.fillColor;
117 var fillOpacity = circ.fillOpacity;
118 var center = circ.center;
119 var radius = circ.radius;
120
121 var clone_circ = new google.maps.Circle({
122 strokeColor: strokeColor,
123 strokeOpacity: strokeOpacity,
124 strokeWeight: strokeWeight,
125 fillColor: fillColor,
126 fillOpacity: fillOpacity,
127 center: center,
128 radius: radius
129 });
130
131 clone_circ.type = google.maps.drawing.OverlayType.CIRCLE;
132
133 return clone_circ;
134}
135
136
137function cloneShape(shape)
138{
139 if (shape.type === google.maps.drawing.OverlayType.POLYLINE) {
140 var clone_polyline = clonePolyline(shape);
141 return clone_polyline;
142 }
143 else if (shape.type === google.maps.drawing.OverlayType.POLYGON) {
144 var clone_polygon = clonePolygon(shape);
145 return clone_polygon;
146 }
147 else if (shape.type === google.maps.drawing.OverlayType.RECTANGLE) {
148 var clone_rect = cloneRectangle(shape);
149 return clone_rect;
150
151 }
152 else if (shape.type === google.maps.drawing.OverlayType.CIRCLE) {
153 var clone_circ = cloneCircle(shape);
154 return clone_circ;
155
156 }
157 else {
158 console.error("Unrecognized shape: " + shape);
159 return null;
160 }
161}
162
163function historyOverlayPush()
164{
165 console.log("historyOverlayPush()");
166 var overlays_copy = [];
167 for (var i = 0; i<overlays.length; i++) {
168 var clone_shape = cloneShape(overlays[i]);
169
170 google.maps.event.addListener(clone_shape, 'click', function () {
171 setSelection(clone_shape);
172 });
173
174 overlays_copy[i] = clone_shape;
175
176 }
177
178 prevOverlays.push(overlays_copy);
179}
Note: See TracBrowser for help on using the repository browser.