|
|
@@ -159,6 +159,19 @@ impl<'a> MapViewGl<'a> {
|
|
159
|
159
|
self.buf.draw(DrawMode::Triangles);
|
|
160
|
160
|
}
|
|
161
|
161
|
|
|
|
162
|
+ pub fn step_zoom(&mut self, steps: i32, step_size: f64) {
|
|
|
163
|
+ let new_zoom = {
|
|
|
164
|
+ let z = (self.map_view.zoom2 + f64::from(steps) * step_size) / step_size;
|
|
|
165
|
+ if steps > 0 {
|
|
|
166
|
+ z.ceil() * step_size
|
|
|
167
|
+ } else {
|
|
|
168
|
+ z.floor() * step_size
|
|
|
169
|
+ }
|
|
|
170
|
+ }.max(0.0).min(22.0);
|
|
|
171
|
+
|
|
|
172
|
+ self.map_view.set_zoom(new_zoom);
|
|
|
173
|
+ }
|
|
|
174
|
+
|
|
162
|
175
|
pub fn zoom(&mut self, zoom_delta: f64) {
|
|
163
|
176
|
if self.map_view.zoom2 + zoom_delta < 0.0 {
|
|
164
|
177
|
self.map_view.set_zoom(0.0);
|