|
|
MapBox iOS SDK
|
|
|
--------------
|
|
|
|
|
|
Based on the Route-Me iOS map library (Alpstein fork) with [MapBox][mapbox] customizations.
|
|
|
|
|
|
Requires iOS 5, Xcode 4.3 or greater, and ARC.
|
|
|
|
|
|
[![](https://raw.github.com/mapbox/mapbox-ios-sdk/packaging/screenshot.png)]()
|
|
|
|
|
|
Major differences from [Alpstein fork of Route-Me](https://github.com/Alpstein/route-me):
|
|
|
|
|
|
* Requires iOS 5.0 and above.
|
|
|
* Supports Automatic Reference Counting (ARC).
|
|
|
* [MapBox](http://mapbox.com) & [MBTiles](http://mbtiles.org) tile source integration code.
|
|
|
* [MapBox Markers](http://mapbox.com/blog/markers/) support.
|
|
|
* [UTFGrid interactivity](http://mapbox.com/mbtiles-spec/utfgrid/).
|
|
|
* Improved network tile loading performance.
|
|
|
* A bulk, background map tile downloader for cache pre-population.
|
|
|
* Annotation callouts that behave like MapKit.
|
|
|
* Annotation convenience subclasses for points and shapes.
|
|
|
* Prepackaged [binary framework](http://mapbox.com/blog/ios-sdk-framework/).
|
|
|
* [CocoaPods](http://cocoapods.org) support.
|
|
|
* Removal of two-finger double-tap gesture for zoom out (to speed up two-finger single-tap recognition like MapKit).
|
|
|
* Different default starting location for maps.
|
|
|
* Built-in attribution view controller with button on map views & default OpenStreetMap attribution.
|
|
|
* Easy static map view support.
|
|
|
* Removal of included example projects in favor of separate examples on GitHub.
|
|
|
* A few added defaults for convenience.
|
|
|
* Improved documentation.
|
|
|
|
|
|
[mapbox]: http://mapbox.com
|
|
|
|
|
|
Route-Me
|
|
|
--------
|
|
|
|
|
|
Route-Me is an open source map library that runs natively on iOS. It's designed to look and feel much like the built-in iOS map library, but it's entirely open, and works with any map source using a pluggable backend system.
|
|
|
|
|
|
Supported map tile sources include [MapBox][1]/[TileStream][2], the offline-capable, database-backed format [MBTiles][3], [OpenStreetMap][4], and several others.
|
|
|
|
|
|
Please note that you are responsible for getting permission to use the map data, and for ensuring your use adheres to the relevant terms of use.
|
|
|
|
|
|
[1]: http://mapbox.com/developers/api/
|
|
|
[2]: https://github.com/mapbox/tilestream
|
|
|
[3]: http://mbtiles.org
|
|
|
[4]: http://www.openstreetmap.org
|
|
|
|
|
|
Installation
|
|
|
------------
|
|
|
|
|
|
There are three ways that you can install the SDK, depending upon your needs:
|
|
|
|
|
|
1. Clone from GitHub and integrate as a dependent Xcode project.
|
|
|
1. Use the [binary framework](http://mapbox-ios-sdk.s3.amazonaws.com/index.html). Use like regular frameworks, linking it in your project, adding `#import <MapBox/MapBox.h>`, and additionally, including the `-ObjC` linker flag.
|
|
|
1. Install via [CocoaPods](http://cocoapods.org).
|
|
|
|
|
|
More detailed information on the installation options is available in the [SDK guide](http://mapbox.com/mapbox-ios-sdk/).
|
|
|
|
|
|
The two main branches of the GitHub repository are pretty self-explanatory: `release` and `develop`. When we tag a [release](https://github.com/mapbox/mapbox-ios-sdk/tags), we also merge `develop` over to `release`, except in the case of minor point releases (e.g., `0.4.2`), where we might just bring over a fix or two from `develop`.
|
|
|
|
|
|
Then, update the submodules:
|
|
|
|
|
|
git submodule update --init
|
|
|
|
|
|
Some example apps showing usage of the SDK (with screenshots):
|
|
|
|
|
|
* [MapBox iOS Example](https://github.com/mapbox/mapbox-ios-example) - online, offline, and interactive tile sources
|
|
|
* [MapBox Me](https://github.com/mapbox/mapbox-me) - user location services and terrain toggling
|
|
|
* [Weekend Picks](https://github.com/mapbox/weekend-picks-template-ios) - markers and data
|
|
|
|
|
|
More documentation is available:
|
|
|
|
|
|
http://mapbox.com/mapbox-ios-sdk/
|
|
|
|
|
|
There are two subdirectories - MapView and Proj4. Proj4 is a support library used to do map projections. The MapView project contains only the Route-Me map library.
|
|
|
|
|
|
See License.txt for license details. In any app that uses this SDK, include the following text on your "preferences" or "about" screen: "Uses MapBox iOS SDK, (c) 2008-2013 MapBox and Route-Me Contributors". Your data provider will have additional attribution requirements.
|
|
|
|
|
|
News, Support and Contributing
|
|
|
------------------------------
|
|
|
|
|
|
Complete API documentation is available [online](http://mapbox.com/mapbox-ios-sdk/api/) or as an [Xcode docset Atom feed](http://mapbox.com/mapbox-ios-sdk/Docs/publish/docset.atom).
|
|
|
|
|
|
The MapBox iOS SDK has a [support resource](http://support.mapbox.com/discussions/mapbox-ios-sdk) where you can open cases and browse other developers' discussions about use of the SDK.
|
|
|
|
|
|
We have a [basic technical overview](http://mapbox.com/mapbox-ios-sdk/) along with the installation instructions.
|
|
|
|
|
|
MapBox has an IRC channel on `irc.freenode.net` in `#mapbox`.
|
|
|
|
|
|
To report bugs and help fix them, please use the [issue tracker](https://github.com/mapbox/mapbox-ios-sdk/issues).
|
|
|
|
|
|
Dependent Libraries
|
|
|
-------------------
|
|
|
|
|
|
The MapBox iOS SDK makes use of several sub-libraries, listed below. See License.txt for more detailed information about Route-Me and Proj4 and see the individual license files in the sub-libraries for more information on each.
|
|
|
|
|
|
* [FMDB](https://github.com/ccgus/fmdb) by Gus Mueller (SQLite for caching and MBTiles)
|
|
|
* [GRMustache](https://github.com/groue/GRMustache) by Gwendal Roué (Mustache templates)
|
|
|
* [SMCalloutView](https://github.com/nfarina/calloutview) by Nick Farina (annotation callouts) |
|
|
Private development work for iOS 7 beta compatibility. See [here](https://github.com/mapbox/mapbox-ios-sdk) for the public SDK.
|
|
|
|
|
|
## Todo list
|
|
|
|
|
|
* [ ] callouts
|
|
|
- [ ] https://github.com/nfarina/calloutview/issues/46
|
|
|
* [ ] "locate me" button
|
|
|
- [ ] tweaks to sizing
|
|
|
- [ ] landscape retina - button size changes
|
|
|
- [ ] size animations - shouldn't happen between follow/follow with heading
|
|
|
* [ ] user location dot, halo, and circle
|
|
|
- [ ] polish on dot shadow & halo drawing
|
|
|
- [ ] pulsing dot
|
|
|
* [ ] tint color response
|
|
|
- [x] done (markers?)
|
|
|
* [ ] compass
|
|
|
- [ ] nav bar spacing (`UIViewController.topLayoutGuide` ?)
|
|
|
* [ ] distance scale |
|
|
\ No newline at end of file |
...
|
...
|
|