RMVirtualEarthSource.m
1.09 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
49
50
51
52
53
54
//
// RMVirtualEarthURL.m
// MapView
//
// Created by Brian Knorr on 9/19/08.
// Copyright 2008 __MyCompanyName__. All rights reserved.
//
#import "RMVirtualEarthSource.h"
@implementation RMVirtualEarthSource
-(NSString*) tileURL: (RMTile) tile
{
NSString *quadKey = [self quadKeyForTile:tile];
return [self urlForQuadKey:quadKey];
}
-(NSString*) quadKeyForTile: (RMTile) tile
{
NSMutableString *quadKey = [NSMutableString string];
for (int i = tile.zoom; i > 0; i--)
{
int mask = 1 << (i - 1);
int cell = 0;
if ((tile.x & mask) != 0)
{
cell++;
}
if ((tile.y & mask) != 0)
{
cell += 2;
}
[quadKey appendString:[NSString stringWithFormat:@"%d", cell]];
}
return quadKey;
}
-(NSString*) urlForQuadKey: (NSString*) quadKey
{
NSString *mapType = @"r"; //type road
NSString *mapExtension = @".png"; //extension
//TODO what is the ?g= hanging off the end 1 or 15?
return [NSString stringWithFormat:@"http://%@%d.ortho.tiles.virtualearth.net/tiles/%@%@%@?g=15", mapType, 3, mapType, quadKey, mapExtension];
}
-(NSString*) description
{
return @"Microsoft VirtualEarth";
}
@end