ProMotion-mapbox 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0a6c7b1a09e8296b378386a2508ff9803ffee0a3
4
- data.tar.gz: 4f9f1e7093bb2981aeffe516cb783f033cfab280
3
+ metadata.gz: 363c3abe1d5611fd12f9d6dfab3bcc661b4742bc
4
+ data.tar.gz: 010e35765a425db7ad9ac6ce929a36c639a2d9d7
5
5
  SHA512:
6
- metadata.gz: 16b2612226da961d263dc65d83f1f060238cb18d646c9fcd992961d5516534f13ab7e3c549569c23b469777ebf7bc22587835077f55eea0776bbbe43dcf11af2
7
- data.tar.gz: ab5d5c5075abb292a91a3fb85650136fd9c2893fc017f9dfb2094120fedfe16e5a1fe95aa1d1ee6663d22fe361dc386980db74c6faf087a96f859ef06385e0c7
6
+ metadata.gz: cabba145deb2d8d12d55b946bcb5b003411e361b6e86e7dca609f6a2a3448c79815202cab1bf79d30f4643d92763109d76105a23cf19a0f132a261ff1ae4630d
7
+ data.tar.gz: 28df81f73618e7d0d90f3d62b4009ebdddd743daaa9509d7e66a12c800fc08a81e3263c2e76c39d9836d43b5886e9f857a46713fcdecbc1a6915e00356b8719b
@@ -6,7 +6,6 @@ module ProMotion
6
6
  @params = params
7
7
  @map_view = map_view
8
8
  set_defaults
9
-
10
9
  if @params[:coordinate]
11
10
  @params[:latitude] = @params[:coordinate].latitude
12
11
  @params[:longitude] = @params[:coordinate].longitude
@@ -19,17 +18,30 @@ module ProMotion
19
18
  PM.logger.error("You are required to specify :latitude and :longitude or :coordinate for annotations.")
20
19
  nil
21
20
  end
21
+ self.userInfo = @params
22
22
  end
23
23
 
24
24
  def set_defaults
25
- @params = {
26
- title: "Title",
27
- pin_color: :red,
28
- identifier: "Annotation-#{@params[:pin_color]}-#{@params[:image]}",
29
- show_callout: true,
30
- animates_drop: false,
31
- maki_icon: nil,
32
- }.merge(@params)
25
+ if @params.class == Hash
26
+ @params = {
27
+ title: "Title",
28
+ pin_color: :red,
29
+ identifier: "Annotation-#{@params[:pin_color]}-#{@params[:image]}",
30
+ show_callout: true,
31
+ animates_drop: false,
32
+ maki_icon: nil,
33
+ }.merge(@params)
34
+ elsif @params.class == RMQuadTreeNode # Clustered pins
35
+ @params = {
36
+ title: @params.annotations.count,
37
+ coordinate: @params.clusterAnnotation.coordinate,
38
+ pin_color: :purple,
39
+ identifier: "Annotation-cluster",
40
+ show_callout: true,
41
+ animates_drop: false,
42
+ maki_icon: nil,
43
+ }
44
+ end
33
45
  end
34
46
 
35
47
  def title
@@ -60,7 +72,17 @@ module ProMotion
60
72
  @coordinate = new_coordinate
61
73
  end
62
74
  end
63
-
75
+
76
+ def self.new_with_rmannotation(rmannotation,map_view)
77
+ annotation = self.new(rmannotation.userInfo, map_view)
78
+ %w(coordinate title subtitle userInfo annotationType annotationIcon
79
+ position layer clusteringEnabled
80
+ isClusterAnnotation isUserLocationAnnotation).each do |meth|
81
+ annotation.send("#{meth}=", rmannotation.send(meth))
82
+ end
83
+ annotation
84
+ end
85
+
64
86
  def method_missing(meth, *args)
65
87
  if @params[meth.to_sym]
66
88
  @params[meth.to_sym]
@@ -12,7 +12,6 @@ module ProMotion
12
12
  self.view = nil
13
13
  self.view = RMMapView.alloc.initWithFrame(self.view.bounds, andTilesource:@tileSource)
14
14
  self.view.delegate = self
15
-
16
15
  check_annotation_data
17
16
  @promotion_annotation_data = []
18
17
  set_up_tap_to_add
@@ -31,11 +30,12 @@ module ProMotion
31
30
  def view_will_appear(animated)
32
31
  super
33
32
  update_annotation_data
33
+ set_up_start_center
34
34
  end
35
35
 
36
36
  def view_did_appear(animated)
37
37
  super
38
- set_up_start_position
38
+ set_up_start_region
39
39
  end
40
40
 
41
41
  def check_annotation_data
@@ -185,9 +185,21 @@ module ProMotion
185
185
  set_region(region, animated:false)
186
186
  end
187
187
 
188
- def set_up_start_position
188
+ def set_up_start_region
189
+ if self.class.respond_to?(:get_start_position) && self.class.get_start_position
190
+ start_params = self.class.get_start_position_params
191
+ self.set_start_position start_params unless start_params[:radius].nil?
192
+ end
193
+ end
194
+
195
+ def set_up_start_center
189
196
  if self.class.respond_to?(:get_start_position) && self.class.get_start_position
190
- self.set_start_position self.class.get_start_position_params
197
+ start_params = self.class.get_start_position_params
198
+ start_params[:zoom] ||= 5
199
+ self.view.setZoom(start_params[:zoom], atCoordinate:
200
+ CLLocationCoordinate2D.new(start_params[:latitude], start_params[:longitude]),
201
+ animated: false
202
+ )
191
203
  end
192
204
  end
193
205
 
@@ -337,8 +349,15 @@ module ProMotion
337
349
  end
338
350
  end
339
351
 
352
+ def empty_cache
353
+ map.removeAllCachedImages
354
+ end
355
+
340
356
  ########## Mapbox methods #################
341
357
  def mapView(map_view, layerForAnnotation: annotation)
358
+ if annotation.is_a?(RMAnnotation)
359
+ annotation = MapScreenAnnotation.new_with_rmannotation(annotation,self.view)
360
+ end
342
361
  annotation_view(map_view, annotation)
343
362
  end
344
363
 
@@ -367,6 +386,9 @@ module ProMotion
367
386
  end
368
387
  end
369
388
 
389
+ def tapOnCalloutAccessoryControl(control, forAnnotation: annotation, onMap: map)
390
+ control.sendActionsForControlEvents(UIControlEventTouchUpInside)
391
+ end
370
392
  ########## Cocoa touch Ruby counterparts #################
371
393
 
372
394
  def deceleration_mode
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ProMotion-mapbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Diogo Andre
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-13 00:00:00.000000000 Z
11
+ date: 2015-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ProMotion