Name Last Update
..
RouteMe.xcodeproj Loading commit data...
CoreAnimationRenderer.h Loading commit data...
CoreAnimationRenderer.m Loading commit data...
FileCache.h Loading commit data...
FileCache.m Loading commit data...
FileTileImage.h Loading commit data...
FileTileImage.m Loading commit data...
FlipsideView.h Loading commit data...
FlipsideView.m Loading commit data...
FlipsideView.xib Loading commit data...
FlipsideViewController.h Loading commit data...
FlipsideViewController.m Loading commit data...
FractalTileProjection.h Loading commit data...
FractalTileProjection.m Loading commit data...
ImagesAppDelegate.h Loading commit data...
ImagesAppDelegate.m Loading commit data...
Info.plist Loading commit data...
LICENSE Loading commit data...
MainView.h Loading commit data...
MainView.m Loading commit data...
MainView.xib Loading commit data...
MainViewController.h Loading commit data...
MainViewController.m Loading commit data...
MainWindow.xib Loading commit data...
MapRenderer.h Loading commit data...
MapRenderer.m Loading commit data...
MapView.h Loading commit data...
MapView.m Loading commit data...
MathUtils.c Loading commit data...
MathUtils.h Loading commit data...
MemoryCache.h Loading commit data...
MemoryCache.m Loading commit data...
Mercator.h Loading commit data...
Mercator.m Loading commit data...
OpenStreetMapsSource.h Loading commit data...
OpenStreetMapsSource.m Loading commit data...
PJ_aea.c Loading commit data...
PJ_aeqd.c Loading commit data...
PJ_airy.c Loading commit data...
PJ_aitoff.c Loading commit data...
PJ_august.c Loading commit data...
PJ_bacon.c Loading commit data...
PJ_bipc.c Loading commit data...
PJ_boggs.c Loading commit data...
PJ_bonne.c Loading commit data...
PJ_cass.c Loading commit data...
PJ_cc.c Loading commit data...
PJ_cea.c Loading commit data...
PJ_chamb.c Loading commit data...
PJ_collg.c Loading commit data...
PJ_crast.c Loading commit data...
PJ_denoy.c Loading commit data...
PJ_eck1.c Loading commit data...
PJ_eck2.c Loading commit data...
PJ_eck3.c Loading commit data...
PJ_eck4.c Loading commit data...
PJ_eck5.c Loading commit data...
PJ_eqc.c Loading commit data...
PJ_eqdc.c Loading commit data...
PJ_fahey.c Loading commit data...
PJ_fouc_s.c Loading commit data...
PJ_gall.c Loading commit data...
PJ_geos.c Loading commit data...
PJ_gins8.c Loading commit data...
PJ_gn_sinu.c Loading commit data...
PJ_gnom.c Loading commit data...
PJ_goode.c Loading commit data...
PJ_hammer.c Loading commit data...
PJ_hatano.c Loading commit data...
PJ_imw_p.c Loading commit data...
PJ_krovak.c Loading commit data...
PJ_labrd.c Loading commit data...
PJ_laea.c Loading commit data...
PJ_lagrng.c Loading commit data...
PJ_larr.c Loading commit data...
PJ_lask.c Loading commit data...
PJ_lcc.c Loading commit data...
PJ_lcca.c Loading commit data...
PJ_loxim.c Loading commit data...
PJ_lsat.c Loading commit data...
PJ_mbt_fps.c Loading commit data...
PJ_mbtfpp.c Loading commit data...
PJ_mbtfpq.c Loading commit data...
PJ_merc.c Loading commit data...
PJ_mill.c Loading commit data...
PJ_mod_ster.c Loading commit data...
PJ_moll.c Loading commit data...
PJ_nell.c Loading commit data...
PJ_nell_h.c Loading commit data...
PJ_nocol.c Loading commit data...
PJ_nsper.c Loading commit data...
PJ_nzmg.c Loading commit data...
PJ_ob_tran.c Loading commit data...
PJ_ocea.c Loading commit data...
PJ_oea.c Loading commit data...
PJ_omerc.c Loading commit data...
PJ_ortho.c Loading commit data...
PJ_poly.c Loading commit data...
PJ_putp2.c Loading commit data...
PJ_putp3.c Loading commit data...
PJ_putp4p.c Loading commit data...
PJ_putp5.c Loading commit data...
PJ_putp6.c Loading commit data...
PJ_robin.c Loading commit data...
PJ_rpoly.c Loading commit data...
PJ_sconics.c Loading commit data...
PJ_somerc.c Loading commit data...
PJ_stere.c Loading commit data...
PJ_sterea.c Loading commit data...
PJ_sts.c Loading commit data...
PJ_tcc.c Loading commit data...
PJ_tcea.c Loading commit data...
PJ_tmerc.c Loading commit data...
PJ_tpeqd.c Loading commit data...
PJ_urm5.c Loading commit data...
PJ_urmfps.c Loading commit data...
PJ_vandg.c Loading commit data...
PJ_vandg2.c Loading commit data...
PJ_vandg4.c Loading commit data...
PJ_wag2.c Loading commit data...
PJ_wag3.c Loading commit data...
PJ_wag7.c Loading commit data...
PJ_wink1.c Loading commit data...
PJ_wink2.c Loading commit data...
Projection.h Loading commit data...
Projection.m Loading commit data...
QuartzRenderer.h Loading commit data...
QuartzRenderer.m Loading commit data...
README Loading commit data...
RootViewController.h Loading commit data...
RootViewController.m Loading commit data...
RouteMe_Prefix.pch Loading commit data...
ScreenProjection.h Loading commit data...
ScreenProjection.m Loading commit data...
Tile.h Loading commit data...
TileCache.h Loading commit data...
TileCache.m Loading commit data...
TileImage.h Loading commit data...
TileImage.m Loading commit data...
TileImageSet.h Loading commit data...
TileImageSet.m Loading commit data...
TileProxy.h Loading commit data...
TileProxy.m Loading commit data...
TileSource.h Loading commit data...
TiledLayerController.h Loading commit data...
TiledLayerController.m Loading commit data...
Transform.h Loading commit data...
Transform.m Loading commit data...
WebTileImage.h Loading commit data...
WebTileImage.m Loading commit data...
aasincos.c Loading commit data...
adjlon.c Loading commit data...
bch2bps.c Loading commit data...
bchgen.c Loading commit data...
biveval.c Loading commit data...
dmstor.c Loading commit data...
emess.c Loading commit data...
emess.h Loading commit data...
gen_cheb.c Loading commit data...
geocent.c Loading commit data...
geocent.h Loading commit data...
geod_for.c Loading commit data...
geod_inv.c Loading commit data...
geod_set.c Loading commit data...
geodesic.h Loading commit data...
jniproj.c Loading commit data...
lines.png Loading commit data...
loading.png Loading commit data...
main.m Loading commit data...
mk_cheby.c Loading commit data...
nad_cvt.c Loading commit data...
nad_init.c Loading commit data...
nad_intr.c Loading commit data...
nad_list.h Loading commit data...
org_proj4_Projections.h Loading commit data...
p_series.c Loading commit data...
pj_apply_gridshift.c Loading commit data...
pj_auth.c Loading commit data...
pj_datum_set.c Loading commit data...
pj_datums.c Loading commit data...
pj_deriv.c Loading commit data...
pj_ell_set.c Loading commit data...
pj_ellps.c Loading commit data...
pj_errno.c Loading commit data...
pj_factors.c Loading commit data...
pj_fwd.c Loading commit data...
pj_gauss.c Loading commit data...
pj_geocent.c Loading commit data...
pj_gridinfo.c Loading commit data...
pj_gridlist.c Loading commit data...
pj_init.c Loading commit data...
pj_inv.c Loading commit data...
pj_latlong.c Loading commit data...
pj_list.c Loading commit data...
pj_list.h Loading commit data...
pj_malloc.c Loading commit data...
pj_mlfn.c Loading commit data...
pj_msfn.c Loading commit data...
pj_open_lib.c Loading commit data...
pj_param.c Loading commit data...
pj_phi2.c Loading commit data...
pj_pr_list.c Loading commit data...
pj_qsfn.c Loading commit data...
pj_release.c Loading commit data...
pj_strerrno.c Loading commit data...
pj_transform.c Loading commit data...
pj_tsfn.c Loading commit data...
pj_units.c Loading commit data...
pj_utils.c Loading commit data...
pj_zpoly1.c Loading commit data...
proj_api.h Loading commit data...
proj_config.h Loading commit data...
proj_mdist.c Loading commit data...
proj_rouss.c Loading commit data...
projects.h Loading commit data...
rtodms.c Loading commit data...
vector1.c Loading commit data...
This is a slippy map for the iPhone written by Joseph Gentle.

It has been made as part of the CatchMe project.

We released it for you under the BSD license.

---------
For Users
---------
Once this application has more functionality than google maps, I'll throw it on the itunes store for free.

--------------
For developers
--------------

- Don't be frightened by so many source code files! Most of them (144 of the ~160 source code files) are from the Proj4 library. Proj4 is available here:
http://trac.osgeo.org/proj/
The only thing proj4 is used for here is converting Longitude / lattitude coordinates into Mercator coordinates (and back again).


Coordinate Systems
------------------

- This project uses 4 different coordinate systems! The code won't make any sense unless you understand them:

Longitude / Lattitude
- Points around the spherical earth measured in Degrees.
- Using the types provided by CoreLocation - CLLocationCoordinate2D { double lat, long; }

Mercator coordinates
- These are points on a flat square. The units are metres; though they're only accurate near the equator.
- Using types in Mercator.h - MercatorPoint { double x, y; } and MercatorRect.
http://en.wikipedia.org/wiki/Mercator_projection

Tile coordinates
- Each zoom level (z) has a grid of 2^z x 2^z tiles. Using OpenStreetMaps each of these tiles is 256 pixels per side.
- Each tile is indexed by the Tile struct - { int x, y, zoom; }. There are also TilePoint and TileRect structs for discussing regions of tiles complete with offsets into the tiles.

Screen Coordinates
- These are measured in pixels within the bounds of the MapView.
- Using builtin CGPoint, CGSize and CGRect

You can convert:
lat/long <-> Mercator using: [Mercator toLatLong: (MercatorPoint) coordinate] and [Mercator toMercator: (CLLocationCoordinate2D) coordinate]
Mercator <-> Tile using FractalTileProjection
Tile <-> Screen coordinates using ScreenProjection

Always be aware of what coordinate system you're working in / with and the code is all pretty easy.


Desired Features
----------------

Search
Bookmarked locations
Overlays (Of course, these can just be done with cocoa at the moment)
Remember last location
Disk cache
A Geo tracing facility would be nice... though I'm not too sure how the user can get the geotraces back off the device.