README.md in map-kit-wrapper-0.0.2 vs README.md in map-kit-wrapper-0.0.3
- old
+ new
@@ -1,11 +1,11 @@
MapKitWrapper
=============
-This is a MapKit wrapper for RubyMotion. It's purpose is to make make dealing with MapKit less painfull
+This is a MapKit wrapper for RubyMotion. It's purpose is to make make dealing with MapKit less painful.
-It is still work in progress, but right now there are wrappers for the Map Kit Data Types and the Core Location Data Types. Those will save you a lot of typing.
+MapKitWrapper is work in progress. Right now there are wrappers for the Map Kit Data Types and the Core Location Data Types. Those will save you a lot of typing.
## Installation
```ruby
gem install map-kit-wrapper
```
@@ -31,16 +31,250 @@
map.region = region
# Alternatively use set_region
# map.set_region(region, :animated => true)
map.showsUserLocation = true
self.view.addSubview(map)
+ map.set_zoom_level = 3
end
-```
-Check if the users location has been found
+```
+
+## MapView: Convenient subclass of MKMapView
+
+Include the module
```ruby
-@map.user_located?
-```
-Get the users coordinates
+include MapKit
+```
+
+Initializer
+
```ruby
-@map.user_coordinates
-```
+MapView.new
+```
+
+### Methods on MapView
+
+Zoom methods
+
+```ruby
+>> map = MapView.new
+=> MapView
+>> map.zoom_enabled?
+=> false
+>> map.zoom_enabled = true
+=> true
+```
+
+Scroll methods
+
+```ruby
+>> map = MapView.new
+=> MapView
+>> map.scroll_enabled?
+=> false
+>> map.scroll_enabled = true
+=> true
+```
+
+Location methods
+
+```ruby
+>> map.user_located?
+=> false
+>> map.shows_user_location?
+=> false
+>> map.user_coordinates
+=> nil
+>> map.shows_user_location = true
+=> true
+# wait for a bit
+>> map.user_located?
+=> true
+>> map.user_coordinates
+=> LocationCoordinate
+```
+
+### MapView zoom level methods
+
+MapView includes calculations to easily get and set the zoom level as seen on Google Maps.
+It's a Ruby adaption of http://troybrant.net/blog/2010/01/set-the-zoom-level-of-an-mkmapview/
+
+```ruby
+>> map.zoom_level
+=> 5
+>> map.set_zoom_level(13)
+=> 13
+# set the zoom level with animation
+>> map.set_zoom_level(13, true)
+=> 13
+```
+
+## Wrappers for the CoreLocation data types
+
+Include the module
+```ruby
+include CoreLocation::DataTypes
+```
+
+### LocationCoordinate: The wrapper for CLLocationCoordinate2D
+
+The `LocationCoordinate` initializer takes a variety of argument types
+```ruby
+LocationCoordinate.new(1,2)
+LocationCoordinate.new([1,2])
+LocationCoordinate.new(LocationCoordinate)
+LocationCoordinate.new(CLLocationCoordinate2D)
+```
+
+Methods on `LocationCoordinate`
+```ruby
+>> lc = LocationCoordinate.new(1, 2)
+=> [1, 2]
+>> lc.latitude
+=> 1
+>> lc.latitude = 10
+=> 10
+>> lc.longitude
+=> 2
+>> lc.longitude = 15
+=> 15
+>> lc.to_array
+=> [10, 15]
+>> lc.sdk
+=> CLLocationCoordinate2D
+```
+
+## Wrappers for the MapKit data types
+
+Include the module
+
+```ruby
+include MapKit::DataTypes
+```
+
+### CoordinateSpan: The wrapper for MKCoordinateSpan
+
+The `CoordinateSpan` initializer takes a variety of argument types
+
+```ruby
+CoordinateSpan.new(1, 2)
+CoordinateSpan.new([1, 2])
+CoordinateSpan.new(MKCoordinateSpan)
+```
+
+Methods on `CoordinateSpan`
+
+```ruby
+>> cs = CoordinateSpan.new(1, 2)
+=> [1, 2]
+>> cs.latitude_delta
+=> 1
+>> cs.longitude_delta
+=> 2
+>> cs.to_array
+=> [1, 2]
+>> cs.sdk
+=> MKCoordinateSpan
+```
+
+### CoordinateRegion: The wrapper for MKCoordinateRegion
+
+The `CoordinateRegion` initializer takes a variety of argument types
+
+```ruby
+CoordinateRegion.new(CoordinateRegion)
+CoordinateRegion.new(MKCoordinateRegion)
+CoordinateRegion.new([56, 10.6], [3.1, 3.1])
+CoordinateRegion.new(LocationCoordinate, CoordinateSpan)
+CoordinateRegion.new(CLLocationCoordinate2D, MKCoordinateSpan)
+```
+
+Methods on `CoordinateRegion`
+
+```ruby
+>> cr = CoordinateRegion.new([56, 10.6], [3.1, 5.1])
+=> {:center => [56, 10.6], :span => [3.1, 5.1]}
+>> cs.center
+=> LocationCoordinate([56, 10.6])
+>> cs.region
+=> CoordinateSpan([3.1, 5.1])
+>> cs.to_hash
+=> {:center => [56, 10.6], :span => [3.1, 5.1]}
+>> cs.sdk
+=> MKCoordinateRegion
+```
+
+### MapPoint: The wrapper for MKMapPoint
+
+The `MapPoint` initializer takes a variety of argument types
+
+```ruby
+MapPoint.new(50, 45)
+MapPoint.new([50, 45])
+MapPoint.new(MKMapPoint)
+```
+
+Methods on `MapPoint`
+
+```ruby
+>> mp = MapPoint.new(50, 45)
+=> [50, 45]
+>> mp.x
+=> 50
+>> mp.y
+=> 45
+>> mp.to_array
+=> [50, 45]
+>> mp.sdk
+=> MKMapPoint
+```
+
+### MapSize: The wrapper for MKMapSize
+
+The `MapSize` initializer takes a variety of argument types
+
+```ruby
+MapSize.new(10, 12)
+MapSize.new([10, 12])
+MapSize.new(MKMapSize)
+```
+
+Methods on `MapSize`
+
+```ruby
+>> ms = MapSize.new(10, 12)
+=> [10, 12]
+>> ms.width
+=> 10
+>> ms.height
+=> 12
+>> ms.to_array
+=> [50, 45]
+>> ms.sdk
+=> MKMapSize
+```
+
+### MapRect: The wrapper for MKMapRect
+
+The `MapRect` initializer takes a variety of argument types
+
+```ruby
+MapRect.new(x, y, width, height)
+MapRect.new([x, y], [width, height])
+MapRect.new(MapPoint, MapSize)
+MapRect.new(MKMapPoint, MKMapSize)
+```
+
+Methods on `MapRect`
+
+```ruby
+>> mr = MapRect.new(2, 3, 10, 12)
+=> {:origin => [2, 3], :size => [10, 12]}
+>> mr.origin
+=> MapRect([2, 3])
+>> mr.size
+=> MapSize([10, 12])
+>> mr.to_hash
+=> {:origin => [2, 3], :size => [10, 12]}
+>> mr.sdk
+=> MKMapRect
+```