Authored by Hal Mueller

minor edits, mostly to documentation

@@ -112,7 +112,6 @@ @@ -112,7 +112,6 @@
112 NSAssert1([newView isKindOfClass:[RMMapView class]], @"view %@ must be a subclass of RMMapView", newView); 112 NSAssert1([newView isKindOfClass:[RMMapView class]], @"view %@ must be a subclass of RMMapView", newView);
113 [(RMMapView *)newView setContents:self]; 113 [(RMMapView *)newView setContents:self];
114 114
115 - renderer = [[RMCoreAnimationRenderer alloc] initWithContent:self];  
116 boundingMask = RMMapMinWidthBound; 115 boundingMask = RMMapMinWidthBound;
117 mercatorToScreenProjection = [[RMMercatorToScreenProjection alloc] initFromProjection:[newTilesource projection] ToScreenBounds:[newView bounds]]; 116 mercatorToScreenProjection = [[RMMercatorToScreenProjection alloc] initFromProjection:[newTilesource projection] ToScreenBounds:[newView bounds]];
118 117
@@ -103,6 +103,7 @@ typedef struct { @@ -103,6 +103,7 @@ typedef struct {
103 103
104 /*! 104 /*!
105 \brief Wrapper around RMMapContents for the iPhone. 105 \brief Wrapper around RMMapContents for the iPhone.
  106 +
106 It implements event handling; but that's about it. All the interesting map 107 It implements event handling; but that's about it. All the interesting map
107 logic is done by RMMapContents. There is exactly one RMMapView instance for each RMMapContents instance. 108 logic is done by RMMapContents. There is exactly one RMMapView instance for each RMMapContents instance.
108 109
@@ -59,12 +59,12 @@ extern NSString * const RMMarkerRedKey; @@ -59,12 +59,12 @@ extern NSString * const RMMarkerRedKey;
59 59
60 - (id) initWithCGImage: (CGImageRef) image anchorPoint: (CGPoint) anchorPoint; 60 - (id) initWithCGImage: (CGImageRef) image anchorPoint: (CGPoint) anchorPoint;
61 - (id) initWithCGImage: (CGImageRef) image; 61 - (id) initWithCGImage: (CGImageRef) image;
62 -/// \deprecated Deprecated at any moment after 0.5. 62 +/// \deprecated Deprecated at any moment after 0.5. Use initWithUIImage:.
63 - (id) initWithKey: (NSString*) key; 63 - (id) initWithKey: (NSString*) key;
64 - (id) initWithUIImage: (UIImage*) image; 64 - (id) initWithUIImage: (UIImage*) image;
65 -/// \deprecated Deprecated at any moment after 0.5. 65 +/// \deprecated Deprecated at any moment after 0.5. Use initWithUIImage:.
66 - (id) initWithStyle: (RMMarkerStyle*) style; 66 - (id) initWithStyle: (RMMarkerStyle*) style;
67 -/// \deprecated Deprecated at any moment after 0.5. 67 +/// \deprecated Deprecated at any moment after 0.5. Use initWithUIImage:.
68 - (id) initWithNamedStyle: (NSString*) styleName; 68 - (id) initWithNamedStyle: (NSString*) styleName;
69 69
70 - (void) setLabel: (UIView*)aView; 70 - (void) setLabel: (UIView*)aView;
@@ -33,7 +33,20 @@ @@ -33,7 +33,20 @@
33 Provides access to USA map tiles from Microsoft Virtual Earth. This implementation is incomplete. It 33 Provides access to USA map tiles from Microsoft Virtual Earth. This implementation is incomplete. It
34 requires a SOAP transaction to validate an access key and obtain a session token. Contact Microsoft 34 requires a SOAP transaction to validate an access key and obtain a session token. Contact Microsoft
35 Virtual Earth for further assistance; see contact information in RMVirtualEarthSource.m. 35 Virtual Earth for further assistance; see contact information in RMVirtualEarthSource.m.
36 - */ 36 +
  37 + To obtain a Virtual Earth key, see this blog post:
  38 + http://blogs.msdn.com/virtualearth/archive/2008/04/29/tracking-virtual-earth-tile-usage.aspx
  39 +
  40 + Microsoft Virtual Earth evangelist: Chris Pendleton, chris.pendleton@microsoft.com
  41 +
  42 + Microsoft Virtual Earth sales: Chris Longo, chris.longo@microsoft.com
  43 +
  44 + This source code sample does not comply with VE terms of service as of March, 2009. To get
  45 + into compliance, you'll have to translate the SOAP call described in the above blog post
  46 + into Objective-C, and modify the URL template in RMVirtualEarthSource.m. If you manage to get
  47 + that working, please contribute your code back to the Route-Me project. When Microsoft was
  48 + invited to submit "blessed" sample code in March, 2009, they declined.
  49 +*/
37 @interface RMVirtualEarthSource : RMAbstractMercatorWebSource <RMAbstractMercatorWebSource> { 50 @interface RMVirtualEarthSource : RMAbstractMercatorWebSource <RMAbstractMercatorWebSource> {
38 NSString *maptypeFlag; 51 NSString *maptypeFlag;
39 NSString *accessKey; 52 NSString *accessKey;
@@ -41,16 +54,6 @@ @@ -41,16 +54,6 @@
41 NSString *_shortName; 54 NSString *_shortName;
42 } 55 }
43 56
44 -// to obtain a Virtual Earth key, see this blog post:  
45 -// http://blogs.msdn.com/virtualearth/archive/2008/04/29/tracking-virtual-earth-tile-usage.aspx  
46 -// Microsoft Virtual Earth evangelist: Chris Pendleton, chris.pendleton@microsoft.com  
47 -// Microsoft Virtual Earth sales: Chris Longo, chris.longo@microsoft.com  
48 -//  
49 -// This source code sample does not comply with VE terms of service as of March, 2009. To get  
50 -// into compliance, you'll have to translate the SOAP call described in the above blog post  
51 -// into Objective-C, and modify the URL template in RMVirtualEarthSource.m. If you manage to get  
52 -// that working, please contribute your code back to the Route-Me project. When Microsoft was  
53 -// invited to submit "blessed" sample code in March, 2009, they declined.  
54 - (id) initWithAerialThemeUsingAccessKey:(NSString *)developerAccessKey; 57 - (id) initWithAerialThemeUsingAccessKey:(NSString *)developerAccessKey;
55 - (id) initWithRoadThemeUsingAccessKey:(NSString *)developerAccessKey; 58 - (id) initWithRoadThemeUsingAccessKey:(NSString *)developerAccessKey;
56 - (id) initWithHybridThemeUsingAccessKey:(NSString *)developerAccessKey; 59 - (id) initWithHybridThemeUsingAccessKey:(NSString *)developerAccessKey;
@@ -317,7 +317,7 @@ EXTRACT_PRIVATE = NO @@ -317,7 +317,7 @@ EXTRACT_PRIVATE = NO
317 # If the EXTRACT_STATIC tag is set to YES all static members of a file 317 # If the EXTRACT_STATIC tag is set to YES all static members of a file
318 # will be included in the documentation. 318 # will be included in the documentation.
319 319
320 -EXTRACT_STATIC = NO 320 +EXTRACT_STATIC = YES
321 321
322 # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 322 # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
323 # defined locally in source files will be included in the documentation. 323 # defined locally in source files will be included in the documentation.
@@ -330,7 +330,7 @@ EXTRACT_LOCAL_CLASSES = YES @@ -330,7 +330,7 @@ EXTRACT_LOCAL_CLASSES = YES
330 # the interface are included in the documentation. 330 # the interface are included in the documentation.
331 # If set to NO (the default) only methods in the interface are included. 331 # If set to NO (the default) only methods in the interface are included.
332 332
333 -EXTRACT_LOCAL_METHODS = NO 333 +EXTRACT_LOCAL_METHODS = YES
334 334
335 # If this flag is set to YES, the members of anonymous namespaces will be 335 # If this flag is set to YES, the members of anonymous namespaces will be
336 # extracted and appear in the documentation as a namespace called 336 # extracted and appear in the documentation as a namespace called
@@ -413,13 +413,13 @@ SORT_MEMBER_DOCS = YES @@ -413,13 +413,13 @@ SORT_MEMBER_DOCS = YES
413 # by member name. If set to NO (the default) the members will appear in 413 # by member name. If set to NO (the default) the members will appear in
414 # declaration order. 414 # declaration order.
415 415
416 -SORT_BRIEF_DOCS = NO 416 +SORT_BRIEF_DOCS = YES
417 417
418 # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the 418 # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
419 # hierarchy of group names into alphabetical order. If set to NO (the default) 419 # hierarchy of group names into alphabetical order. If set to NO (the default)
420 # the group names will appear in their defined order. 420 # the group names will appear in their defined order.
421 421
422 -SORT_GROUP_NAMES = NO 422 +SORT_GROUP_NAMES = YES
423 423
424 # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 424 # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
425 # sorted by fully-qualified names, including namespaces. If set to 425 # sorted by fully-qualified names, including namespaces. If set to
@@ -1277,7 +1277,7 @@ INCLUDE_FILE_PATTERNS = @@ -1277,7 +1277,7 @@ INCLUDE_FILE_PATTERNS =
1277 # undefined via #undef or recursively expanded use the := operator 1277 # undefined via #undef or recursively expanded use the := operator
1278 # instead of the = operator. 1278 # instead of the = operator.
1279 1279
1280 -PREDEFINED = 1280 +PREDEFINED = TARGET_OS_IPHONE
1281 1281
1282 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 1282 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
1283 # this tag can be used to specify a list of macro names that should be expanded. 1283 # this tag can be used to specify a list of macro names that should be expanded.
@@ -25,6 +25,24 @@ @@ -25,6 +25,24 @@
25 return self; 25 return self;
26 } 26 }
27 27
  28 +- (void)addMarkers
  29 +{
  30 + CLLocationCoordinate2D center;
  31 + center.latitude = 47.592;
  32 + center.longitude = -122.333;
  33 +
  34 + int i, j;
  35 + double startLongitude = center.longitude;
  36 + for (i = 0; i < 30; i++) {
  37 + center.latitude -= .01;
  38 + center.longitude = startLongitude;
  39 + for (j = 0; j < 30; j++) {
  40 + center.longitude += .01;
  41 + [self.mapView.contents.markerManager addDefaultMarkerAt:center];
  42 + }
  43 + }
  44 +
  45 +}
28 46
29 // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 47 // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
30 - (void)viewDidLoad { 48 - (void)viewDidLoad {
@@ -40,19 +58,8 @@ @@ -40,19 +58,8 @@
40 center.latitude = 47.592; 58 center.latitude = 47.592;
41 center.longitude = -122.333; 59 center.longitude = -122.333;
42 [mapView moveToLatLong:center]; 60 [mapView moveToLatLong:center];
43 -  
44 - int i, j;  
45 - double startLongitude = center.longitude;  
46 - for (i = 0; i < 30; i++) {  
47 - center.latitude -= .01;  
48 - center.longitude = startLongitude;  
49 - for (j = 0; j < 30; j++) {  
50 - center.longitude += .01;  
51 - [self.mapView.contents.markerManager addDefaultMarkerAt:center];  
52 - }  
53 - }  
54 -  
55 [self updateInfo]; 61 [self updateInfo];
  62 + [self performSelector:@selector(addMarkers) withObject:nil afterDelay:10.0];
56 } 63 }
57 64
58 65
@@ -21,6 +21,7 @@ @@ -21,6 +21,7 @@
21 289233AF0DB2D0DB0083E9F9 /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 289233AB0DB2D0DB0083E9F9 /* RootViewController.m */; }; 21 289233AF0DB2D0DB0083E9F9 /* RootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 289233AB0DB2D0DB0083E9F9 /* RootViewController.m */; };
22 289233B00DB2D0DB0083E9F9 /* FlipsideViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 289233AD0DB2D0DB0083E9F9 /* FlipsideViewController.m */; }; 22 289233B00DB2D0DB0083E9F9 /* FlipsideViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 289233AD0DB2D0DB0083E9F9 /* FlipsideViewController.m */; };
23 2B12B8680F84ADA5003AE2BF /* marker-red.png in Resources */ = {isa = PBXBuildFile; fileRef = 2B12B8670F84ADA5003AE2BF /* marker-red.png */; }; 23 2B12B8680F84ADA5003AE2BF /* marker-red.png in Resources */ = {isa = PBXBuildFile; fileRef = 2B12B8670F84ADA5003AE2BF /* marker-red.png */; };
  24 + 2B70CB7A0F856A46002BAF97 /* loading.png in Resources */ = {isa = PBXBuildFile; fileRef = 2B70CB790F856A46002BAF97 /* loading.png */; };
24 EBDDE0E00F649CE100377FFE /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EBDDE0DF0F649CE100377FFE /* CoreLocation.framework */; }; 25 EBDDE0E00F649CE100377FFE /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EBDDE0DF0F649CE100377FFE /* CoreLocation.framework */; };
25 EBDDE0E20F649CE100377FFE /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EBDDE0E10F649CE100377FFE /* QuartzCore.framework */; }; 26 EBDDE0E20F649CE100377FFE /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EBDDE0E10F649CE100377FFE /* QuartzCore.framework */; };
26 EBDDE0E40F649CE100377FFE /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = EBDDE0E30F649CE100377FFE /* libsqlite3.dylib */; }; 27 EBDDE0E40F649CE100377FFE /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = EBDDE0E30F649CE100377FFE /* libsqlite3.dylib */; };
@@ -66,6 +67,7 @@ @@ -66,6 +67,7 @@
66 289233AD0DB2D0DB0083E9F9 /* FlipsideViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FlipsideViewController.m; path = Classes/FlipsideViewController.m; sourceTree = "<group>"; }; 67 289233AD0DB2D0DB0083E9F9 /* FlipsideViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FlipsideViewController.m; path = Classes/FlipsideViewController.m; sourceTree = "<group>"; };
67 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; 68 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
68 2B12B8670F84ADA5003AE2BF /* marker-red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "marker-red.png"; sourceTree = "<group>"; }; 69 2B12B8670F84ADA5003AE2BF /* marker-red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "marker-red.png"; sourceTree = "<group>"; };
  70 + 2B70CB790F856A46002BAF97 /* loading.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = loading.png; sourceTree = "<group>"; };
69 32CA4F630368D1EE00C91783 /* MarkerMurder_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MarkerMurder_Prefix.pch; sourceTree = "<group>"; }; 71 32CA4F630368D1EE00C91783 /* MarkerMurder_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MarkerMurder_Prefix.pch; sourceTree = "<group>"; };
70 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 72 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
71 EBDDE0DF0F649CE100377FFE /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; 73 EBDDE0DF0F649CE100377FFE /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
@@ -162,6 +164,7 @@ @@ -162,6 +164,7 @@
162 isa = PBXGroup; 164 isa = PBXGroup;
163 children = ( 165 children = (
164 2B12B8670F84ADA5003AE2BF /* marker-red.png */, 166 2B12B8670F84ADA5003AE2BF /* marker-red.png */,
  167 + 2B70CB790F856A46002BAF97 /* loading.png */,
165 280E754A0DD40C5E005A515E /* FlipsideView.xib */, 168 280E754A0DD40C5E005A515E /* FlipsideView.xib */,
166 280E754B0DD40C5E005A515E /* MainView.xib */, 169 280E754B0DD40C5E005A515E /* MainView.xib */,
167 280E754C0DD40C5E005A515E /* MainWindow.xib */, 170 280E754C0DD40C5E005A515E /* MainWindow.xib */,
@@ -261,6 +264,7 @@ @@ -261,6 +264,7 @@
261 280E754E0DD40C5E005A515E /* MainView.xib in Resources */, 264 280E754E0DD40C5E005A515E /* MainView.xib in Resources */,
262 280E754F0DD40C5E005A515E /* MainWindow.xib in Resources */, 265 280E754F0DD40C5E005A515E /* MainWindow.xib in Resources */,
263 2B12B8680F84ADA5003AE2BF /* marker-red.png in Resources */, 266 2B12B8680F84ADA5003AE2BF /* marker-red.png in Resources */,
  267 + 2B70CB7A0F856A46002BAF97 /* loading.png in Resources */,
264 ); 268 );
265 runOnlyForDeploymentPostprocessing = 0; 269 runOnlyForDeploymentPostprocessing = 0;
266 }; 270 };