RMOpenStreetMapsSource.m
1.4 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//
// OpenStreetMapsSource.m
// Images
//
// Created by Joseph Gentle on 19/08/08.
// Copyright 2008 __MyCompanyName__. All rights reserved.
//
#import "RMOpenStreetMapsSource.h"
#import "RMProjection.h"
#import "RMTransform.h"
#import "RMTileImage.h"
#import "RMTileLoader.h"
#import "RMFractalTileProjection.h"
#import "RMTiledLayerController.h"
@implementation RMOpenStreetMapsSource
-(id) init
{
if (![super init])
return nil;
// trans = [[Transform alloc] initFrom:latlong To:google];
baseURL = @"http://a.tile.openstreetmap.org/";
RMMercatorRect bounds;
bounds.origin.x = -20037508.34;
bounds.origin.y = -20037508.34;
bounds.size.width = 20037508.34 * 2;
bounds.size.height = 20037508.34 * 2;
tileProjection = [[RMFractalTileProjection alloc] initWithBounds:bounds TileSideLength:256 MaxZoom:18];
return self;
}
-(void) dealloc
{
[tileProjection release];
[super dealloc];
}
-(NSString*) tileURL: (RMTile) tile
{
return [NSString stringWithFormat:@"http://tile.openstreetmap.org/%d/%d/%d.png", tile.zoom, tile.x, tile.y];
}
-(RMTileImage *) tileImage: (RMTile)tile
{
RMTileImage* image = [RMTileImage imageWithTile: tile FromURL:[self tileURL:tile]];
// [cache addTile:tile WithImage:image];
return image;
}
-(RMFractalTileProjection*) tileProjection
{
return [[tileProjection retain] autorelease];
}
-(RMMercatorRect) bounds
{
return [tileProjection bounds];
}
//@synthesize cache;
@end