Class: Ruflet::UI::Controls::RufletComponents::MapControl

Inherits:
Control
  • Object
show all
Includes:
MapValueNormalizer
Defined in:
lib/ruflet_ui/ruflet/ui/controls/materials/map_controls.rb

Constant Summary collapse

TYPE =
"map".freeze
WIRE =
"Map".freeze

Constants inherited from Control

Control::HOST_EXPANDED_TYPES

Instance Attribute Summary

Attributes inherited from Control

#children, #id, #props, #runtime_page, #type, #wire_id

Instance Method Summary collapse

Methods inherited from Control

#emit, generate_id, #has_handler?, #on, #to_patch

Constructor Details

#initialize(id: nil, layers: nil, initial_center: nil, initial_zoom: nil, min_zoom: nil, max_zoom: nil, interaction_configuration: nil, keep_alive: nil, bgcolor: nil, data: nil, expand: nil, height: nil, key: nil, visible: nil, width: nil, on_init: nil, on_long_press: nil, on_position_change: nil, on_secondary_tap: nil, on_tap: nil) ⇒ MapControl

Returns a new instance of MapControl.



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/map_controls.rb', line 34

def initialize(id: nil, layers: nil, initial_center: nil, initial_zoom: nil, min_zoom: nil, max_zoom: nil, interaction_configuration: nil, keep_alive: nil, bgcolor: nil, data: nil, expand: nil, height: nil, key: nil, visible: nil, width: nil, on_init: nil, on_long_press: nil, on_position_change: nil, on_secondary_tap: nil, on_tap: nil)
  props = {}
  props[:layers] = layers unless layers.nil?
  props[:initial_center] = normalize_map_coordinate(initial_center) unless initial_center.nil?
  props[:initial_zoom] = initial_zoom unless initial_zoom.nil?
  props[:min_zoom] = min_zoom unless min_zoom.nil?
  props[:max_zoom] = max_zoom unless max_zoom.nil?
  props[:interaction_configuration] = interaction_configuration unless interaction_configuration.nil?
  props[:keep_alive] = keep_alive unless keep_alive.nil?
  props[:bgcolor] = bgcolor unless bgcolor.nil?
  props[:data] = data unless data.nil?
  props[:expand] = expand unless expand.nil?
  props[:height] = height unless height.nil?
  props[:key] = key unless key.nil?
  props[:visible] = visible unless visible.nil?
  props[:width] = width unless width.nil?
  props[:on_init] = on_init unless on_init.nil?
  props[:on_long_press] = on_long_press unless on_long_press.nil?
  props[:on_position_change] = on_position_change unless on_position_change.nil?
  props[:on_secondary_tap] = on_secondary_tap unless on_secondary_tap.nil?
  props[:on_tap] = on_tap unless on_tap.nil?
  super(type: TYPE, id: id, **props)
end

Instance Method Details

#center_on(point = nil, coordinates: nil, zoom: nil, duration: nil, curve: nil, cancel_ongoing_animations: nil, timeout: 10, on_result: nil) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/map_controls.rb', line 58

def center_on(point = nil, coordinates: nil, zoom: nil, duration: nil, curve: nil, cancel_ongoing_animations: nil, timeout: 10, on_result: nil)
  point ||= coordinates
  invoke_map(
    "center_on",
    args: compact_args(
      "point" => normalize_map_coordinate(point),
      "zoom" => zoom,
      "duration" => duration,
      "curve" => curve,
      "cancel_ongoing_animations" => cancel_ongoing_animations
    ),
    timeout: timeout,
    on_result: on_result
  )
end

#move_to(destination = nil, coordinates: nil, zoom: nil, rotation: nil, offset: nil, duration: nil, curve: nil, cancel_ongoing_animations: nil, timeout: 10, on_result: nil) ⇒ Object



74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/map_controls.rb', line 74

def move_to(destination = nil, coordinates: nil, zoom: nil, rotation: nil, offset: nil, duration: nil, curve: nil, cancel_ongoing_animations: nil, timeout: 10, on_result: nil)
  destination ||= coordinates
  invoke_map(
    "move_to",
    args: compact_args(
      "destination" => normalize_map_coordinate(destination),
      "zoom" => zoom,
      "rotation" => rotation,
      "offset" => offset,
      "duration" => duration,
      "curve" => curve,
      "cancel_ongoing_animations" => cancel_ongoing_animations
    ),
    timeout: timeout,
    on_result: on_result
  )
end

#reset_rotation(timeout: 10, on_result: nil) ⇒ Object



118
119
120
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/map_controls.rb', line 118

def reset_rotation(timeout: 10, on_result: nil)
  invoke_map("reset_rotation", timeout: timeout, on_result: on_result)
end

#rotate_from(degree, timeout: 10, on_result: nil) ⇒ Object



114
115
116
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/map_controls.rb', line 114

def rotate_from(degree, timeout: 10, on_result: nil)
  invoke_map("rotate_from", args: { "degree" => degree }, timeout: timeout, on_result: on_result)
end

#zoom_in(delta: nil, timeout: 10, on_result: nil) ⇒ Object



106
107
108
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/map_controls.rb', line 106

def zoom_in(delta: nil, timeout: 10, on_result: nil)
  invoke_map("zoom_in", args: compact_args("delta" => delta), timeout: timeout, on_result: on_result)
end

#zoom_out(delta: nil, timeout: 10, on_result: nil) ⇒ Object



110
111
112
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/map_controls.rb', line 110

def zoom_out(delta: nil, timeout: 10, on_result: nil)
  invoke_map("zoom_out", args: compact_args("delta" => delta), timeout: timeout, on_result: on_result)
end

#zoom_to(zoom, duration: nil, curve: nil, cancel_ongoing_animations: nil, timeout: 10, on_result: nil) ⇒ Object



92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/map_controls.rb', line 92

def zoom_to(zoom, duration: nil, curve: nil, cancel_ongoing_animations: nil, timeout: 10, on_result: nil)
  invoke_map(
    "zoom_to",
    args: compact_args(
      "zoom" => zoom,
      "duration" => duration,
      "curve" => curve,
      "cancel_ongoing_animations" => cancel_ongoing_animations
    ),
    timeout: timeout,
    on_result: on_result
  )
end