RMMercatorToTileProjection.h
1.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//
// RMTileProjection.h
// MapView
//
// Created by Joseph Gentle on 24/09/08.
// Copyright 2008 __MyCompanyName__. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "RMMercator.h"
#import "RMTile.h"
#import "RMMercatorToTileProjection.h"
@class RMMercatorToScreenProjection;
// A tile projection is a projection which turns mercators into tile coordinates.
// At time of writing, read RMFractalTileProjection to see the implementation of this.
@protocol RMMercatorToTileProjection<NSObject>
-(RMTilePoint) project: (RMMercatorPoint)mercator AtZoom:(float)zoom;
-(RMTileRect) projectRect: (RMMercatorRect)mercatorRect AtZoom:(float)zoom;
-(RMTilePoint) project: (RMMercatorPoint)mercator AtScale:(float)scale;
-(RMTileRect) projectRect: (RMMercatorRect)mercatorRect AtScale:(float)scale;
// This is a helper for projectRect above. Much simpler for the caller.
-(RMTileRect) project: (RMMercatorToScreenProjection*)screen;
-(RMTile) normaliseTile: (RMTile) tile;
-(float) normaliseZoom: (float) zoom;
-(float) calculateZoomFromScale: (float) scale;
-(float) calculateNormalisedZoomFromScale: (float) scale;
-(float) calculateScaleFromZoom: (float) zoom;
// Mercator bounds of the earth.
@property(readonly, nonatomic) RMMercatorRect bounds;
// Maximum zoom for which we have tile images
@property(readonly, nonatomic) int maxZoom;
// Tile side length in pixels
@property(readonly, nonatomic) int tileSideLength;
@end