├── .gitignore ├── Example ├── English.lproj │ ├── InfoPlist.strings │ └── MainMenu.xib ├── Example-Info.plist ├── Example.xcodeproj │ └── project.pbxproj ├── ExampleAppDelegate.h ├── ExampleAppDelegate.m ├── Example_Prefix.pch └── main.m ├── License.txt ├── PTMapView.h ├── PTMapView.m └── README.mdown /.gitignore: -------------------------------------------------------------------------------- 1 | *.pbxuser 2 | *.mode1v3 3 | build 4 | -------------------------------------------------------------------------------- /Example/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /Example/Example-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | com.yourcompany.${PRODUCT_NAME:rfc1034identifier} 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | LSMinimumSystemVersion 26 | ${MACOSX_DEPLOYMENT_TARGET} 27 | NSMainNibFile 28 | MainMenu 29 | NSPrincipalClass 30 | NSApplication 31 | 32 | 33 | -------------------------------------------------------------------------------- /Example/Example.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 45; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; }; 11 | 256AC3DA0F4B6AC300CF3369 /* ExampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 256AC3D90F4B6AC300CF3369 /* ExampleAppDelegate.m */; }; 12 | 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; 13 | 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; 14 | 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; 15 | 937FA75E137B268E00507E51 /* PTMapView.m in Sources */ = {isa = PBXBuildFile; fileRef = 937FA75D137B268E00507E51 /* PTMapView.m */; }; 16 | /* End PBXBuildFile section */ 17 | 18 | /* Begin PBXFileReference section */ 19 | 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; 20 | 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 21 | 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; }; 22 | 1DDD58150DA1D0A300B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; 23 | 256AC3D80F4B6AC300CF3369 /* ExampleAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExampleAppDelegate.h; sourceTree = ""; }; 24 | 256AC3D90F4B6AC300CF3369 /* ExampleAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ExampleAppDelegate.m; sourceTree = ""; }; 25 | 256AC3F00F4B6AF500CF3369 /* Example_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Example_Prefix.pch; sourceTree = ""; }; 26 | 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 27 | 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; 28 | 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; 29 | 8D1107310486CEB800E47090 /* Example-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Example-Info.plist"; sourceTree = ""; }; 30 | 8D1107320486CEB800E47090 /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 31 | 937FA75C137B268E00507E51 /* PTMapView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PTMapView.h; path = ../PTMapView.h; sourceTree = SOURCE_ROOT; }; 32 | 937FA75D137B268E00507E51 /* PTMapView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PTMapView.m; path = ../PTMapView.m; sourceTree = SOURCE_ROOT; }; 33 | /* End PBXFileReference section */ 34 | 35 | /* Begin PBXFrameworksBuildPhase section */ 36 | 8D11072E0486CEB800E47090 /* Frameworks */ = { 37 | isa = PBXFrameworksBuildPhase; 38 | buildActionMask = 2147483647; 39 | files = ( 40 | 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, 41 | ); 42 | runOnlyForDeploymentPostprocessing = 0; 43 | }; 44 | /* End PBXFrameworksBuildPhase section */ 45 | 46 | /* Begin PBXGroup section */ 47 | 080E96DDFE201D6D7F000001 /* Classes */ = { 48 | isa = PBXGroup; 49 | children = ( 50 | 256AC3D80F4B6AC300CF3369 /* ExampleAppDelegate.h */, 51 | 256AC3D90F4B6AC300CF3369 /* ExampleAppDelegate.m */, 52 | ); 53 | name = Classes; 54 | sourceTree = ""; 55 | }; 56 | 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { 57 | isa = PBXGroup; 58 | children = ( 59 | 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, 60 | ); 61 | name = "Linked Frameworks"; 62 | sourceTree = ""; 63 | }; 64 | 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { 65 | isa = PBXGroup; 66 | children = ( 67 | 29B97324FDCFA39411CA2CEA /* AppKit.framework */, 68 | 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */, 69 | 29B97325FDCFA39411CA2CEA /* Foundation.framework */, 70 | ); 71 | name = "Other Frameworks"; 72 | sourceTree = ""; 73 | }; 74 | 19C28FACFE9D520D11CA2CBB /* Products */ = { 75 | isa = PBXGroup; 76 | children = ( 77 | 8D1107320486CEB800E47090 /* Example.app */, 78 | ); 79 | name = Products; 80 | sourceTree = ""; 81 | }; 82 | 29B97314FDCFA39411CA2CEA /* Example */ = { 83 | isa = PBXGroup; 84 | children = ( 85 | 937FA75C137B268E00507E51 /* PTMapView.h */, 86 | 937FA75D137B268E00507E51 /* PTMapView.m */, 87 | 080E96DDFE201D6D7F000001 /* Classes */, 88 | 29B97315FDCFA39411CA2CEA /* Other Sources */, 89 | 29B97317FDCFA39411CA2CEA /* Resources */, 90 | 29B97323FDCFA39411CA2CEA /* Frameworks */, 91 | 19C28FACFE9D520D11CA2CBB /* Products */, 92 | ); 93 | name = Example; 94 | sourceTree = ""; 95 | }; 96 | 29B97315FDCFA39411CA2CEA /* Other Sources */ = { 97 | isa = PBXGroup; 98 | children = ( 99 | 256AC3F00F4B6AF500CF3369 /* Example_Prefix.pch */, 100 | 29B97316FDCFA39411CA2CEA /* main.m */, 101 | ); 102 | name = "Other Sources"; 103 | sourceTree = ""; 104 | }; 105 | 29B97317FDCFA39411CA2CEA /* Resources */ = { 106 | isa = PBXGroup; 107 | children = ( 108 | 8D1107310486CEB800E47090 /* Example-Info.plist */, 109 | 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, 110 | 1DDD58140DA1D0A300B32029 /* MainMenu.xib */, 111 | ); 112 | name = Resources; 113 | sourceTree = ""; 114 | }; 115 | 29B97323FDCFA39411CA2CEA /* Frameworks */ = { 116 | isa = PBXGroup; 117 | children = ( 118 | 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, 119 | 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, 120 | ); 121 | name = Frameworks; 122 | sourceTree = ""; 123 | }; 124 | /* End PBXGroup section */ 125 | 126 | /* Begin PBXNativeTarget section */ 127 | 8D1107260486CEB800E47090 /* Example */ = { 128 | isa = PBXNativeTarget; 129 | buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Example" */; 130 | buildPhases = ( 131 | 8D1107290486CEB800E47090 /* Resources */, 132 | 8D11072C0486CEB800E47090 /* Sources */, 133 | 8D11072E0486CEB800E47090 /* Frameworks */, 134 | ); 135 | buildRules = ( 136 | ); 137 | dependencies = ( 138 | ); 139 | name = Example; 140 | productInstallPath = "$(HOME)/Applications"; 141 | productName = Example; 142 | productReference = 8D1107320486CEB800E47090 /* Example.app */; 143 | productType = "com.apple.product-type.application"; 144 | }; 145 | /* End PBXNativeTarget section */ 146 | 147 | /* Begin PBXProject section */ 148 | 29B97313FDCFA39411CA2CEA /* Project object */ = { 149 | isa = PBXProject; 150 | buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Example" */; 151 | compatibilityVersion = "Xcode 3.1"; 152 | developmentRegion = English; 153 | hasScannedForEncodings = 1; 154 | knownRegions = ( 155 | English, 156 | Japanese, 157 | French, 158 | German, 159 | ); 160 | mainGroup = 29B97314FDCFA39411CA2CEA /* Example */; 161 | projectDirPath = ""; 162 | projectRoot = ""; 163 | targets = ( 164 | 8D1107260486CEB800E47090 /* Example */, 165 | ); 166 | }; 167 | /* End PBXProject section */ 168 | 169 | /* Begin PBXResourcesBuildPhase section */ 170 | 8D1107290486CEB800E47090 /* Resources */ = { 171 | isa = PBXResourcesBuildPhase; 172 | buildActionMask = 2147483647; 173 | files = ( 174 | 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, 175 | 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */, 176 | ); 177 | runOnlyForDeploymentPostprocessing = 0; 178 | }; 179 | /* End PBXResourcesBuildPhase section */ 180 | 181 | /* Begin PBXSourcesBuildPhase section */ 182 | 8D11072C0486CEB800E47090 /* Sources */ = { 183 | isa = PBXSourcesBuildPhase; 184 | buildActionMask = 2147483647; 185 | files = ( 186 | 8D11072D0486CEB800E47090 /* main.m in Sources */, 187 | 256AC3DA0F4B6AC300CF3369 /* ExampleAppDelegate.m in Sources */, 188 | 937FA75E137B268E00507E51 /* PTMapView.m in Sources */, 189 | ); 190 | runOnlyForDeploymentPostprocessing = 0; 191 | }; 192 | /* End PBXSourcesBuildPhase section */ 193 | 194 | /* Begin PBXVariantGroup section */ 195 | 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { 196 | isa = PBXVariantGroup; 197 | children = ( 198 | 089C165DFE840E0CC02AAC07 /* English */, 199 | ); 200 | name = InfoPlist.strings; 201 | sourceTree = ""; 202 | }; 203 | 1DDD58140DA1D0A300B32029 /* MainMenu.xib */ = { 204 | isa = PBXVariantGroup; 205 | children = ( 206 | 1DDD58150DA1D0A300B32029 /* English */, 207 | ); 208 | name = MainMenu.xib; 209 | sourceTree = ""; 210 | }; 211 | /* End PBXVariantGroup section */ 212 | 213 | /* Begin XCBuildConfiguration section */ 214 | C01FCF4B08A954540054247B /* Debug */ = { 215 | isa = XCBuildConfiguration; 216 | buildSettings = { 217 | ALWAYS_SEARCH_USER_PATHS = NO; 218 | COPY_PHASE_STRIP = NO; 219 | GCC_DYNAMIC_NO_PIC = NO; 220 | GCC_ENABLE_FIX_AND_CONTINUE = YES; 221 | GCC_MODEL_TUNING = G5; 222 | GCC_OPTIMIZATION_LEVEL = 0; 223 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 224 | GCC_PREFIX_HEADER = Example_Prefix.pch; 225 | INFOPLIST_FILE = "Example-Info.plist"; 226 | INSTALL_PATH = "$(HOME)/Applications"; 227 | PRODUCT_NAME = Example; 228 | }; 229 | name = Debug; 230 | }; 231 | C01FCF4C08A954540054247B /* Release */ = { 232 | isa = XCBuildConfiguration; 233 | buildSettings = { 234 | ALWAYS_SEARCH_USER_PATHS = NO; 235 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 236 | GCC_MODEL_TUNING = G5; 237 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 238 | GCC_PREFIX_HEADER = Example_Prefix.pch; 239 | INFOPLIST_FILE = "Example-Info.plist"; 240 | INSTALL_PATH = "$(HOME)/Applications"; 241 | PRODUCT_NAME = Example; 242 | }; 243 | name = Release; 244 | }; 245 | C01FCF4F08A954540054247B /* Debug */ = { 246 | isa = XCBuildConfiguration; 247 | buildSettings = { 248 | ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; 249 | GCC_C_LANGUAGE_STANDARD = gnu99; 250 | GCC_OPTIMIZATION_LEVEL = 0; 251 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 252 | GCC_WARN_UNUSED_VARIABLE = YES; 253 | ONLY_ACTIVE_ARCH = YES; 254 | PREBINDING = NO; 255 | SDKROOT = macosx10.6; 256 | }; 257 | name = Debug; 258 | }; 259 | C01FCF5008A954540054247B /* Release */ = { 260 | isa = XCBuildConfiguration; 261 | buildSettings = { 262 | ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; 263 | GCC_C_LANGUAGE_STANDARD = gnu99; 264 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 265 | GCC_WARN_UNUSED_VARIABLE = YES; 266 | PREBINDING = NO; 267 | SDKROOT = macosx10.6; 268 | }; 269 | name = Release; 270 | }; 271 | /* End XCBuildConfiguration section */ 272 | 273 | /* Begin XCConfigurationList section */ 274 | C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Example" */ = { 275 | isa = XCConfigurationList; 276 | buildConfigurations = ( 277 | C01FCF4B08A954540054247B /* Debug */, 278 | C01FCF4C08A954540054247B /* Release */, 279 | ); 280 | defaultConfigurationIsVisible = 0; 281 | defaultConfigurationName = Release; 282 | }; 283 | C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Example" */ = { 284 | isa = XCConfigurationList; 285 | buildConfigurations = ( 286 | C01FCF4F08A954540054247B /* Debug */, 287 | C01FCF5008A954540054247B /* Release */, 288 | ); 289 | defaultConfigurationIsVisible = 0; 290 | defaultConfigurationName = Release; 291 | }; 292 | /* End XCConfigurationList section */ 293 | }; 294 | rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; 295 | } 296 | -------------------------------------------------------------------------------- /Example/ExampleAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleAppDelegate.h 3 | // Example 4 | // 5 | // Created by Aaron Brethorst on 5/11/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "PTMapView.h" 11 | 12 | @interface ExampleAppDelegate : NSObject { 13 | NSWindow *window; 14 | 15 | PTMapView *mapView; 16 | } 17 | @property (nonatomic,retain) IBOutlet PTMapView *mapView; 18 | @property (assign) IBOutlet NSWindow *window; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Example/ExampleAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleAppDelegate.m 3 | // Example 4 | // 5 | // Created by Aaron Brethorst on 5/11/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import "ExampleAppDelegate.h" 10 | 11 | @implementation ExampleAppDelegate 12 | 13 | @synthesize window, mapView; 14 | 15 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 16 | // Insert code here to initialize your application 17 | 18 | srand ( time(NULL) ); 19 | 20 | [self.mapView draw]; 21 | } 22 | 23 | #pragma mark - 24 | #pragma mark PTMapViewDelegate 25 | 26 | - (NSNumber *)valueForCountry:(NSString *)code 27 | { 28 | return [NSNumber numberWithInt:rand() % 100]; 29 | } 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Example/Example_Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'Example' target in the 'Example' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /Example/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Example 4 | // 5 | // Created by Aaron Brethorst on 5/11/11. 6 | // Copyright 2011 Structlab LLC. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, char *argv[]) 12 | { 13 | return NSApplicationMain(argc, (const char **) argv); 14 | } 15 | -------------------------------------------------------------------------------- /License.txt: -------------------------------------------------------------------------------- 1 | Licensed under the Apache License, Version 2.0 (the "License"); 2 | you may not use this file except in compliance with the License. 3 | You may obtain a copy of the License at 4 |   5 |    http://www.apache.org/licenses/LICENSE-2.0 6 |   7 | Unless required by applicable law or agreed to in writing, software 8 | distributed under the License is distributed on an "AS IS" BASIS, 9 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 | See the License for the specific language governing permissions and 11 | limitations under the License. -------------------------------------------------------------------------------- /PTMapView.h: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright 2009 Positive Team 3 | // 4 | 5 | #import 6 | 7 | @protocol PTMapViewDataSource 8 | - (NSNumber *)valueForCountry:(NSString *)code; 9 | @end 10 | 11 | @interface PTMapView : NSView { 12 | NSMutableDictionary *worldMap; 13 | NSMutableDictionary *values; 14 | NSNumberFormatter *formatter; 15 | NSColor *backgroundColor; 16 | NSColor *color; 17 | NSColor *textColor; 18 | id dataSource; 19 | } 20 | 21 | @property (nonatomic, assign) id dataSource; 22 | @property (nonatomic, retain) NSColor *backgroundColor; 23 | @property (nonatomic, retain) NSColor *color; 24 | @property (nonatomic, retain) NSColor *textColor; 25 | @property (nonatomic, retain) NSNumberFormatter *formatter; 26 | 27 | - (void)draw; 28 | - (NSColor *)colorForValue:(float)value; 29 | @end -------------------------------------------------------------------------------- /PTMapView.m: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright 2009 Positive Team 3 | // 4 | 5 | #import "PTMapView.h" 6 | 7 | #define OFFSET 60 8 | 9 | @interface PTMapView () 10 | - (void)configureView; 11 | @end 12 | 13 | 14 | @implementation PTMapView 15 | 16 | @synthesize dataSource; 17 | @synthesize backgroundColor; 18 | @synthesize color; 19 | @synthesize textColor; 20 | @synthesize formatter; 21 | 22 | - (id)initWithCoder:(NSCoder *)aDecoder { 23 | 24 | self = [super initWithCoder:aDecoder]; 25 | 26 | if (self) { 27 | [self configureView]; 28 | } 29 | return self; 30 | } 31 | 32 | - (id)initWithFrame:(NSRect)frame { 33 | self = [super initWithFrame:frame]; 34 | if (self) { 35 | [self configureView]; 36 | } 37 | return self; 38 | } 39 | 40 | - (void)configureView { 41 | worldMap = [[NSMutableDictionary alloc] init]; 42 | 43 | [worldMap setObject:[NSArray arrayWithObjects:@"{4687,2398};{4679,2402};{4679,2398}", nil] forKey:@"AD"]; 44 | [worldMap setObject:[NSArray arrayWithObjects:@"{5995,2942};{6059,2942};{6115,2890};{6119,2902};{6119,2922};{6107,2922};{6107,2946};{6099,2946};{6087,2986};{6023,2978}", nil] forKey:@"AE"]; 45 | [worldMap setObject:[NSArray arrayWithObjects:@"{6239,2782};{6263,2754};{6263,2738};{6239,2734};{6231,2686};{6251,2614};{6283,2626};{6367,2554};{6387,2562};{6419,2566};{6459,2566};{6499,2526};{6511,2530};{6511,2542};{6519,2542};{6515,2566};{6523,2582};{6555,2562};{6591,2558};{6607,2566};{6599,2570};{6583,2578};{6555,2574};{6523,2586};{6511,2598};{6523,2626};{6503,2646};{6507,2654};{6499,2662};{6475,2662};{6487,2682};{6467,2690};{6459,2722};{6447,2730};{6431,2726};{6399,2742};{6383,2750};{6383,2778};{6323,2794};{6279,2794}", nil] forKey:@"AF"]; 46 | [worldMap setObject:[NSArray arrayWithObjects:@"{3015.38,3131.88};{3013.25,3136.25};{3020,3136.12}", @"{3014.62,3116.75};{3016.75,3122.25};{3018.5,3120.25}", nil] forKey:@"AG"]; 47 | [worldMap setObject:[NSArray arrayWithObjects:@"{2983.25,3102};{2980.62,3105.88};{2986,3102.5}", @"{2984.62,3105.75};{2980.12,3108.5};{2984.75,3110}", nil] forKey:@"AI"]; 48 | [worldMap setObject:[NSArray arrayWithObjects:@"{5167,2398};{5183,2418};{5179,2442};{5191,2454};{5191,2462};{5171,2494};{5151,2470};{5155,2422};{5147,2422}", nil] forKey:@"AL"]; 49 | [worldMap setObject:[NSArray arrayWithObjects:@"{5823,2438};{5783,2442};{5787,2478};{5811,2486};{5843,2494};{5851,2514};{5859,2514};{5859,2490};{5839,2482};{5847,2470}", nil] forKey:@"AM"]; 50 | [worldMap setObject:[NSArray arrayWithObjects:@"{2822.83,3260.33};{2834.17,3268.58};{2831.67,3269.92}", @"{2843.92,3262};{2849.08,3265.83};{2846.42,3270.17}", nil] forKey:@"AN"]; 51 | [worldMap setObject:[NSArray arrayWithObjects:@"{4955,3722};{4975,3702};{4983,3710};{4967,3722};{4967,3738};{4959,3738}", @"{4967,3746};{4979,3742};{5075,3742};{5099,3798};{5147,3798};{5151,3770};{5179,3770};{5179,3778};{5211,3778};{5223,3886};{5271,3878};{5271,3930};{5215,3930};{5215,4014};{5255,4058};{5187,4066};{5139,4062};{5123,4050};{5007,4050};{4983,4038};{4947,4046};{4947,4006};{4971,3942};{4999,3910};{5003,3878};{4979,3826};{4991,3814};{4963,3750}", nil] forKey:@"AO"]; 52 | [worldMap setObject:[NSArray arrayWithObjects:@"{2875,4198};{2903,4170};{2911,4178};{2943,4182};{2951,4198};{2959,4178};{2995,4182};{3047,4226};{3127,4270};{3099,4322};{3175,4326};{3199,4306};{3207,4274};{3227,4274};{3227,4318};{3127,4406};{3103,4514};{3103,4534};{3139,4558};{3155,4602};{3127,4642};{3003,4662};{3003,4722};{2935,4722};{2943,4770};{2915,4854};{2867,4878};{2867,4910};{2911,4926};{2907,4958};{2863,4998};{2859,5022};{2827,5038};{2823,5058};{2843,5106};{2803,5094};{2751,5094};{2739,5046};{2719,5050};{2711,5002};{2763,4866};{2747,4766};{2763,4666};{2779,4650};{2799,4494};{2787,4434};{2839,4306};{2839,4250};{2871,4230}", nil] forKey:@"AR"]; 53 | [worldMap setObject:[NSArray arrayWithObjects:@"{9613,3964.17};{9607.5,3966.17};{9609.67,3968}", nil] forKey:@"AS"]; 54 | [worldMap setObject:[NSArray arrayWithObjects:@"{4895,2238};{4979,2238};{4975,2218};{5003,2198};{5027,2202};{5035,2186};{5087,2198};{5087,2230};{5067,2258};{5023,2274};{4999,2270};{4959,2254};{4915,2262};{4891,2250}", nil] forKey:@"AT"]; 55 | [worldMap setObject:[NSArray arrayWithObjects:@"{8331,4062};{8375,3874};{8423,3970};{8455,3986};{8483,4086};{8659,4274};{8671,4366};{8639,4474};{8583,4566};{8575,4622};{8483,4666};{8439,4642};{8411,4666};{8311,4622};{8291,4562};{8251,4518};{8207,4542};{8147,4458};{8071,4446};{7951,4466};{7887,4514};{7791,4514};{7735,4546};{7663,4518};{7679,4462};{7623,4306};{7639,4278};{7615,4230};{7707,4138};{7823,4110};{7867,4030};{7887,4046};{7975,3954};{8007,3986};{8043,3986};{8039,3966};{8083,3906};{8119,3910};{8131,3886};{8235,3918};{8199,3982}", @"{8439,4718};{8487,4734};{8535,4718};{8535,4762};{8499,4810};{8475,4806};{8439,4730}", nil] forKey:@"AU"]; 56 | [worldMap setObject:[NSArray arrayWithObjects:@"{2799.58,3254.08};{2804.92,3259.75};{2800.08,3258.42}", nil] forKey:@"AW"]; 57 | [worldMap setObject:[NSArray arrayWithObjects:@"{5167.55,1771.71};{5152.61,1777.71};{5171.63,1788.18}", nil] forKey:@"AX"]; 58 | [worldMap setObject:[NSArray arrayWithObjects:@"{5859,2418};{5855,2426};{5867,2438};{5863,2446};{5831,2434};{5823,2438};{5847,2470};{5839,2482};{5859,2490};{5859,2514};{5899,2490};{5923,2530};{5939,2474};{5959,2466};{5939,2458};{5915,2422};{5899,2442}", @"{5843,2494};{5811,2486};{5835,2510};{5851,2514}", nil] forKey:@"AZ"]; 59 | [worldMap setObject:[NSArray arrayWithObjects:@"{5143,2322};{5143,2370};{5123,2402};{5051,2326};{5055,2314}", nil] forKey:@"BA"]; 60 | [worldMap setObject:[NSArray arrayWithObjects:@"{3073.33,3235.62};{3079.38,3240.04};{3074.21,3243.46}", nil] forKey:@"BB"]; 61 | [worldMap setObject:[NSArray arrayWithObjects:@"{6979,3006};{6971,2938};{6951,2930};{6975,2910};{6955,2894};{6963,2878};{6995,2886};{6999,2910};{7067,2918};{7035,2954};{7043,2978};{7063,2954};{7071,3002};{7071,3022};{7059,3030};{7043,2982}", nil] forKey:@"BD"]; 62 | [worldMap setObject:[NSArray arrayWithObjects:@"{4707,2118};{4727,2106};{4771,2102};{4795,2114};{4787,2126};{4799,2126};{4807,2142};{4799,2150};{4791,2158};{4791,2170};{4783,2170}", nil] forKey:@"BE"]; 63 | [worldMap setObject:[NSArray arrayWithObjects:@"{4663,3298};{4703,3274};{4645,3194};{4615,3194};{4587,3206};{4583,3214};{4563,3218};{4499,3278};{4495,3314};{4527,3334};{4547,3322};{4567,3342};{4567,3298};{4627,3298};{4635,3294};{4643,3294}", nil] forKey:@"BF"]; 64 | [worldMap setObject:[NSArray arrayWithObjects:@"{5243,2438};{5239,2418};{5227,2406};{5243,2378};{5227,2358};{5235,2346};{5243,2358};{5315,2362};{5355,2350};{5391,2362};{5387,2374};{5359,2402};{5375,2418};{5331,2426};{5327,2438};{5303,2442};{5283,2430}", nil] forKey:@"BG"]; 65 | [worldMap setObject:[NSArray arrayWithObjects:@"{5962.25,2884.67};{5970.12,2881.33};{5967.79,2894.33}", nil] forKey:@"BH"]; 66 | [worldMap setObject:[NSArray arrayWithObjects:@"{5447,3650};{5451,3674};{5419,3706};{5407,3678};{5399,3662}", nil] forKey:@"BI"]; 67 | [worldMap setObject:[NSArray arrayWithObjects:@"{4711,3418};{4711,3350};{4719,3350};{4739,3314};{4731,3286};{4735,3278};{4711,3258};{4703,3274};{4663,3298};{4659,3314};{4679,3326};{4687,3422}", nil] forKey:@"BJ"]; 68 | [worldMap setObject:[NSArray arrayWithObjects:@"{7663,3458};{7671,3474};{7655,3462};{7655,3478};{7651,3482};{7639,3470}", nil] forKey:@"BN"]; 69 | [worldMap setObject:[NSArray arrayWithObjects:@"{2815,4050};{2827,4030};{2839,4018};{2819,3998};{2835,3918};{2815,3878};{2847,3878};{2887,3850};{2923,3842};{2931,3906};{3055,3954};{3059,4018};{3107,4018};{3107,4046};{3127,4070};{3115,4122};{3087,4102};{3019,4110};{2995,4182};{2959,4178};{2951,4198};{2943,4182};{2911,4178};{2903,4170};{2875,4198};{2855,4198}", nil] forKey:@"BO"]; 70 | [worldMap setObject:[NSArray arrayWithObjects:@"{3283,3478};{3247,3530};{3207,3526};{3155,3538};{3095,3554};{3071,3538};{3063,3454};{3047,3450};{3047,3458};{2987,3494};{2939,3478};{2959,3522};{2975,3526};{2907,3570};{2883,3558};{2867,3534};{2855,3542};{2803,3542};{2803,3558};{2819,3558};{2819,3570};{2799,3570};{2799,3594};{2819,3622};{2803,3698};{2779,3698};{2727,3722};{2719,3758};{2695,3786};{2747,3854};{2787,3838};{2787,3878};{2847,3878};{2887,3850};{2923,3842};{2931,3906};{3055,3954};{3059,4018};{3107,4018};{3107,4046};{3127,4070};{3115,4122};{3115,4178};{3175,4182};{3187,4230};{3215,4230};{3207,4274};{3227,4274};{3227,4318};{3127,4406};{3147,4402};{3243,4478};{3231,4494};{3235,4510};{3359,4358};{3363,4278};{3435,4222};{3539,4198};{3611,4054};{3623,3934};{3719,3818};{3723,3770};{3707,3722};{3663,3718};{3587,3662};{3491,3650};{3471,3662};{3455,3626};{3383,3602};{3355,3626};{3367,3594};{3323,3578};{3327,3542};{3315,3538}", nil] forKey:@"BR"]; 71 | [worldMap setObject:[NSArray arrayWithObjects:@"{2587,2914};{2579,2930};{2591,2938};{2599,2930}", @"{2599,2938};{2591,2942};{2603,2954}", @"{2571,2874};{2595,2866};{2595,2870}", @"{2607,2866};{2619,2878};{2611,2890};{2615,2878}", nil] forKey:@"BS"]; 72 | [worldMap setObject:[NSArray arrayWithObjects:@"{6971,2862};{6999,2870};{7059,2866};{7055,2850};{7047,2850};{7047,2842};{7003,2826}", nil] forKey:@"BT"]; 73 | [worldMap setObject:[NSArray arrayWithObjects:@"{5299,4058};{5375,4162};{5411,4178};{5347,4222};{5311,4278};{5247,4266};{5211,4310};{5183,4310};{5179,4298};{5187,4290};{5163,4254};{5163,4174};{5191,4174};{5191,4074};{5251,4066};{5259,4078}", nil] forKey:@"BW"]; 74 | [worldMap setObject:[NSArray arrayWithObjects:@"{5379,1934};{5339,1954};{5311,2006};{5259,2018};{5267,2062};{5251,2078};{5259,2082};{5259,2098};{5303,2086};{5443,2106};{5455,2082};{5475,2082};{5467,2042};{5499,2034};{5451,1986};{5451,1954}", nil] forKey:@"BY"]; 75 | [worldMap setObject:[NSArray arrayWithObjects:@"{2299,3114};{2319,3094};{2319,3146};{2303,3166};{2299,3166}", nil] forKey:@"BZ"]; 76 | [worldMap setObject:[NSArray arrayWithObjects:@"{3159,2102};{3083,2230};{3247,2250};{3227,2170};{3155,2162};{3187,2094}", @"{2583,1346};{2723,1446};{2739,1486};{2683,1534};{2703,1558};{2611,1570};{2591,1602};{2623,1614};{2691,1602};{2771,1666};{2907,1706};{2835,1638};{2931,1670};{2951,1642};{2859,1526};{2971,1582};{3027,1510};{2855,1422};{2883,1386};{2835,1322};{2603,1226};{2539,1246};{2495,1174};{2395,1206};{2395,1270};{2367,1226};{2407,1174};{2335,1174};{2275,1254};{2279,1294};{2339,1310};{2291,1310};{2339,1350};{2571,1362}", @"{2519,1178};{2555,1222};{2643,1218};{2595,1182}", @"{1899,1190};{1871,1222};{1895,1306};{1991,1362};{1959,1406};{1835,1386};{1667,1430};{1559,1358};{1695,1338};{1555,1330};{1527,1310};{1583,1286};{1515,1278};{1535,1234};{1623,1190};{1651,1226};{1667,1210};{1727,1238};{1731,1214};{1783,1234};{1803,1278};{1803,1198};{1855,1210};{1835,1182};{1871,1174}", @"{1611,1186};{1479,1254};{1471,1286};{1411,1314};{1335,1262};{1387,1170};{1363,1146};{1455,1134};{1551,1150}", @"{1587,970};{1415,1042};{1559,1038}", @"{1615,1030};{1559,1098};{1707,1142};{1859,1098};{1863,1054};{1799,1046};{1775,1006};{1743,1078}", @"{1871,870};{1979,890};{2027,954};{1907,930}", @"{1903,1022};{2075,1034};{2067,1106};{2015,1106}", @"{2135,1082};{2103,1106};{2167,1126};{2183,1094}", @"{2091,1002};{2259,1014};{2299,1074};{2535,1078};{2523,1130};{2279,1138};{2211,1090};{2187,1034};{2147,1042}", @"{2051,910};{2119,974};{2199,962}", @"{2627,1434};{2607,1466};{2643,1486};{2667,1446}", @"{1659,949.999};{1747,933.999};{1751,961.999};{1691,977.999}", @"{2883,2322};{2859,2294};{2859,2250};{2823,2238};{2759,2318};{2671,2318};{2643,2338};{2563,2354};{2543,2374};{2563,2374};{2567,2386};{2459,2414};{2459,2406};{2475,2382};{2491,2370};{2503,2318};{2539,2338};{2519,2290};{2427,2274};{2419,2266};{2411,2222};{2327,2186};{2283,2218};{2143,2186};{1415,2186};{1347,2146};{1395,2190};{1395,2206};{1335,2186};{1267,2126};{1283,2122};{1323,2134};{1207,2014};{1215,1986};{1227,1938};{1079,1798};{1031,1830};{935,1770};{935,1374};{1083,1410};{1239,1350};{1219,1374};{1291,1346};{1347,1386};{1367,1354};{1643,1430};{1611,1454};{1687,1462};{1751,1450};{1795,1474};{1807,1446};{1859,1426};{1787,1434};{1795,1422};{1859,1410};{1871,1430};{1955,1462};{2047,1454};{2047,1434};{2079,1426};{2031,1402};{2071,1358};{2127,1414};{2091,1426};{2119,1442};{2115,1478};{2135,1446};{2179,1422};{2155,1374};{2107,1342};{2139,1262};{2123,1178};{2175,1154};{2267,1166};{2223,1226};{2179,1222};{2167,1270};{2231,1346};{2207,1370};{2227,1386};{2271,1382};{2335,1438};{2347,1486};{2395,1418};{2395,1366};{2503,1394};{2479,1438};{2507,1474};{2435,1546};{2363,1518};{2355,1570};{2251,1646};{2159,1754};{2151,1826};{2191,1838};{2211,1898};{2259,1890};{2411,1970};{2479,1970};{2479,2054};{2535,2106};{2579,2070};{2543,1986};{2623,1938};{2611,1862};{2575,1834};{2615,1786};{2591,1686};{2735,1706};{2811,1754};{2827,1830};{2863,1854};{2911,1830};{2943,1762};{3059,1958};{3135,1990};{3179,2070};{3071,2142};{2891,2142};{2787,2242};{2899,2178};{2951,2186};{2939,2270};{3011,2294};{3047,2250};{3059,2290};{2919,2366};{2899,2338};{2947,2294}", @"{2387,1558};{2355,1638};{2407,1658};{2455,1618};{2511,1642};{2523,1630}", @"{1999,1174};{2083,1166};{2099,1270};{2043,1298};{1943,1222};{2011,1222}", @"{2339,982};{2287,1026};{2563,1034};{2563,990};{2687,898};{2659,870};{2783,838};{3031,682};{2691,622};{2475,658};{2459,694};{2411,666};{2223,730};{2383,798};{2531,790};{2359,814};{2443,894};{2367,894};{2339,942};{2403,962};{2327,962}", @"{2199,746};{2307,826};{2403,870};{2303,938};{2223,934};{2103,830}", nil] forKey:@"CA"]; 77 | [worldMap setObject:[NSArray arrayWithObjects:@"{5407,3678};{5399,3662};{5399,3650};{5419,3622};{5419,3586};{5463,3530};{5447,3522};{5451,3494};{5359,3454};{5243,3458};{5231,3478};{5175,3470};{5155,3450};{5127,3474};{5127,3494};{5127,3506};{5103,3606};{5063,3646};{5063,3678};{5055,3690};{5027,3714};{5019,3714};{5019,3702};{4999,3706};{4991,3714};{4983,3710};{4967,3722};{4967,3738};{4959,3738};{4967,3746};{4979,3742};{5075,3742};{5099,3798};{5147,3798};{5151,3770};{5179,3770};{5179,3778};{5211,3778};{5223,3886};{5271,3878};{5279,3878};{5283,3890};{5303,3886};{5307,3894};{5347,3906};{5351,3894};{5407,3942};{5423,3942};{5423,3910};{5403,3914};{5383,3890};{5391,3870};{5387,3834};{5399,3814};{5443,3802};{5411,3750};{5403,3718}", nil] forKey:@"CD"]; 78 | [worldMap setObject:[NSArray arrayWithObjects:@"{5127,3494};{5127,3474};{5155,3450};{5175,3470};{5231,3478};{5243,3458};{5359,3454};{5243,3298};{5127,3374};{5047,3386};{5019,3430};{5063,3530};{5075,3494}", nil] forKey:@"CF"]; 79 | [worldMap setObject:[NSArray arrayWithObjects:@"{5063,3530};{5075,3494};{5127,3494};{5127,3506};{5103,3606};{5063,3646};{5063,3678};{5055,3690};{5027,3714};{5019,3714};{5019,3702};{4999,3706};{4991,3714};{4983,3710};{4975,3702};{4955,3722};{4931,3690};{4943,3678};{4951,3686};{4943,3650};{4967,3646};{4967,3638};{4975,3634};{4983,3650};{5011,3650};{5019,3602};{5003,3594};{5019,3554};{4987,3554};{4987,3530};{5023,3530};{5063,3546}", nil] forKey:@"CG"]; 80 | [worldMap setObject:[NSArray arrayWithObjects:@"{4839,2238};{4823,2242};{4799,2282};{4819,2274};{4823,2290};{4847,2290};{4859,2274};{4875,2294};{4887,2274};{4907,2282};{4915,2262};{4891,2250};{4895,2238}", nil] forKey:@"CH"]; 81 | [worldMap setObject:[NSArray arrayWithObjects:@"{4567,3454};{4555,3414};{4575,3370};{4567,3342};{4547,3322};{4527,3334};{4495,3314};{4479,3322};{4475,3310};{4455,3322};{4431,3318};{4419,3390};{4415,3414};{4443,3438};{4439,3474};{4491,3454};{4543,3450}", nil] forKey:@"CI"]; 82 | [worldMap setObject:[NSArray arrayWithObjects:@"{2843,5106};{2803,5094};{2751,5094};{2739,5046};{2719,5050};{2711,5002};{2763,4866};{2747,4766};{2763,4666};{2779,4650};{2799,4494};{2787,4434};{2839,4306};{2839,4250};{2871,4230};{2875,4198};{2855,4198};{2815,4050};{2791,4074};{2799,4162};{2759,4406};{2763,4474};{2719,4606};{2703,4614};{2715,4678};{2699,4734};{2703,4750};{2695,4754};{2683,4802};{2703,4810};{2715,4750};{2731,4750};{2707,4854};{2699,4818};{2683,4834};{2679,4878};{2651,4914};{2687,4918};{2675,4950};{2655,4958};{2659,5050};{2671,5038};{2663,5078};{2691,5078};{2667,5086};{2715,5130};{2675,5118};{2739,5182};{2823,5210};{2927,5198};{2927,5190};{2899,5182};{2847,5142};{2831,5110};{2815,5110};{2791,5130};{2791,5142};{2819,5142};{2799,5154};{2803,5166};{2827,5182};{2795,5170};{2787,5150};{2775,5166};{2743,5150};{2771,5158};{2783,5122};{2819,5102}", nil] forKey:@"CL"]; 83 | [worldMap setObject:[NSArray arrayWithObjects:@"{4895,3530};{5023,3530};{5063,3546};{5063,3530};{5019,3430};{5047,3386};{5007,3330};{5015,3322};{5047,3322};{5035,3294};{5039,3270};{5019,3242};{5011,3242};{5011,3262};{5019,3262};{5023,3282};{5007,3290};{4939,3418};{4915,3402};{4863,3462};{4903,3502}", nil] forKey:@"CM"]; 84 | [worldMap setObject:[NSArray arrayWithObjects:@"{6947,2182};{6935,2186};{6891,2210};{6891,2250};{6819,2250};{6795,2314};{6747,2322};{6747,2410};{6691,2446};{6659,2450};{6643,2466};{6607,2466};{6583,2478};{6579,2494};{6575,2494};{6583,2522};{6603,2526};{6607,2566};{6635,2582};{6639,2606};{6683,2618};{6715,2650};{6707,2658};{6731,2698};{6715,2710};{6707,2702};{6699,2706};{6711,2738};{6767,2770};{6795,2770};{6895,2830};{6955,2838};{6971,2830};{6971,2862};{7003,2826};{7047,2842};{7075,2834};{7127,2798};{7147,2802};{7163,2794};{7195,2826};{7207,2818};{7231,2846};{7231,2894};{7203,2926};{7203,2946};{7235,2942};{7239,2970};{7255,2974};{7243,2998};{7267,3002};{7271,3018};{7295,3014};{7299,3022};{7311,3026};{7307,2994};{7311,2990};{7323,2990};{7331,2982};{7347,2990};{7407,2966};{7443,2982};{7443,3002};{7475,3018};{7491,3010};{7527,3018};{7519,3030};{7531,3050};{7543,3042};{7535,3030};{7623,2994};{7623,2978};{7631,2986};{7643,2986};{7707,2966};{7779,2894};{7847,2782};{7811,2770};{7843,2750};{7835,2718};{7819,2702};{7799,2650};{7771,2634};{7843,2570};{7855,2574};{7859,2558};{7847,2554};{7835,2558};{7815,2542};{7779,2566};{7763,2554};{7763,2534};{7735,2534};{7735,2506};{7763,2506};{7771,2498};{7823,2450};{7851,2462};{7831,2490};{7835,2506};{7823,2514};{7823,2518};{7887,2482};{7907,2482};{7975,2422};{8003,2438};{8007,2418};{8047,2402};{8055,2386};{8071,2406};{8071,2390};{8083,2386};{8083,2326};{8103,2310};{8135,2322};{8179,2214};{8079,2234};{8051,2178};{7991,2162};{7947,2058};{7879,2030};{7815,2038};{7791,2058};{7791,2066};{7811,2066};{7811,2086};{7735,2170};{7703,2158};{7675,2218};{7683,2234};{7755,2222};{7791,2258};{7783,2270};{7723,2270};{7627,2326};{7583,2318};{7567,2342};{7579,2362};{7515,2402};{7455,2406};{7399,2430};{7287,2394};{7175,2394};{7139,2342};{7087,2322};{7027,2314};{7019,2302};{7031,2286};{7007,2226};{6951,2202}", @"{7545,3053.5};{7510,3059.5};{7493,3075.75};{7495,3096.5};{7518.25,3106};{7541.5,3090.25};{7555,3063.5}", nil] forKey:@"CN"]; 85 | [worldMap setObject:[NSArray arrayWithObjects:@"{2595,3398};{2611,3378};{2607,3358};{2623,3366};{2671,3294};{2715,3290};{2759,3258};{2771,3270};{2751,3282};{2711,3346};{2759,3402};{2799,3402};{2815,3426};{2867,3422};{2855,3470};{2871,3498};{2859,3510};{2875,3526};{2883,3558};{2867,3534};{2855,3542};{2803,3542};{2803,3558};{2819,3558};{2819,3570};{2799,3570};{2799,3594};{2819,3622};{2803,3698};{2783,3686};{2799,3658};{2755,3646};{2719,3650};{2703,3618};{2663,3590};{2571,3550};{2611,3490};{2603,3478};{2607,3410}", nil] forKey:@"CO"]; 86 | [worldMap setObject:[NSArray arrayWithObjects:@"{2443,3302};{2435,3306};{2411,3294};{2391,3290};{2387,3294};{2383,3318};{2403,3334};{2415,3330};{2459,3370};{2467,3334}", nil] forKey:@"CR"]; 87 | [worldMap setObject:[NSArray arrayWithObjects:@"{2423,2990};{2479,2966};{2575,2986};{2691,3050};{2599,3058};{2611,3038};{2483,2982};{2419,3006}", @"{2459,3002};{2455,3014};{2471,3014}", nil] forKey:@"CU"]; 88 | [worldMap setObject:[NSArray arrayWithObjects:@"{5547.67,2608.5};{5524.5,2618.5};{5504.17,2617.33};{5500.67,2625.5};{5488.33,2627.33};{5505.5,2642.5};{5532.33,2628.67};{5531.33,2620.33}", nil] forKey:@"CY"]; 89 | [worldMap setObject:[NSArray arrayWithObjects:@"{5135,2170};{5087,2198};{5035,2186};{5027,2202};{5003,2198};{4963,2146};{5031,2122};{5127,2158}", nil] forKey:@"CZ"]; 90 | [worldMap setObject:[NSArray arrayWithObjects:@"{4823,2038};{4827,2026};{4871,2018};{4867,1982};{4891,1982};{4907,1998};{4931,1998};{4927,2014};{4983,1998};{5011,2018};{5019,2046};{5011,2054};{5023,2066};{5031,2122};{4963,2146};{5003,2198};{4975,2218};{4979,2238};{4839,2238};{4855,2190};{4807,2174};{4811,2162};{4799,2150};{4807,2142};{4799,2126};{4787,2126};{4803,2102};{4795,2090};{4819,2086};{4827,2042}", nil] forKey:@"DE"]; 91 | [worldMap setObject:[NSArray arrayWithObjects:@"{5771,3254};{5751,3258};{5739,3278};{5739,3298};{5767,3298};{5775,3286};{5763,3282};{5779,3270}", nil] forKey:@"DJ"]; 92 | [worldMap setObject:[NSArray arrayWithObjects:@"{4867,1982};{4891,1982};{4895,1958};{4915,1978};{4923,1962};{4907,1954};{4899,1958};{4899,1954};{4927,1922};{4911,1918};{4915,1874};{4887,1898};{4867,1898};{4851,1922};{4851,1958};{4867,1962}", @"{4967,1938};{4951,1942};{4951,1950};{4943,1942};{4931,1954};{4935,1970};{4959,1978};{4959,1970};{4967,1966};{4959,1958};{4971,1954}", @"{4931,1978};{4927,1986};{4943,1994};{4955,1990};{4963,1978};{4947,1978};{4943,1982}", nil] forKey:@"DK"]; 93 | [worldMap setObject:[NSArray arrayWithObjects:@"{3024.5,3173.5};{3030.62,3177.12};{3030.38,3184.25};{3027.62,3185.25}", nil] forKey:@"DM"]; 94 | [worldMap setObject:[NSArray arrayWithObjects:@"{2755,3062};{2755,3106};{2763,3118};{2787,3098};{2839,3102};{2847,3094};{2779,3058}", nil] forKey:@"DO"]; 95 | [worldMap setObject:[NSArray arrayWithObjects:@"{4863,2574};{4859,2626};{4835,2666};{4879,2718};{4887,2770};{4887,2886};{4955,2958};{4831,3034};{4795,3074};{4751,3082};{4723,3082};{4667,3026};{4506.85,2917.81};{4411,2854};{4411,2842};{4411,2814};{4539,2742};{4539,2726};{4607,2714};{4583,2630};{4719,2574}", nil] forKey:@"DZ"]; 96 | [worldMap setObject:[NSArray arrayWithObjects:@"{2663,3590};{2571,3550};{2515,3614};{2515,3646};{2543,3666};{2531,3678};{2527,3706};{2551,3706};{2563,3722};{2591,3666};{2627,3654};{2663,3614}", nil] forKey:@"EC"]; 97 | [worldMap setObject:[NSArray arrayWithObjects:@"{5231,1826};{5219,1830};{5231,1838};{5215,1846};{5219,1870};{5251,1842};{5235,1838};{5243,1830}", @"{5279,1870};{5303,1862};{5335,1882};{5347,1878};{5355,1882};{5367,1870};{5359,1834};{5375,1810};{5315,1802};{5255,1818};{5263,1854};{5283,1854}", nil] forKey:@"EE"]; 98 | [worldMap setObject:[NSArray arrayWithObjects:@"{5539,2738};{5559,2790};{5539,2838};{5491,2778};{5575,2970};{5531,3010};{5511,3002};{5299,3002};{5299,2730};{5318.47,2729.77};{5403,2754};{5455,2734};{5507,2746}", nil] forKey:@"EG"]; 99 | [worldMap setObject:[NSArray arrayWithObjects:@"{4411,2854};{4411,2842};{4295,2842};{4279,2874};{4259,2886};{4247,2926};{4195,3006};{4195,3022};{4295,3022};{4295,2974};{4323,2962};{4323,2890};{4411,2890}", nil] forKey:@"EH"]; 100 | [worldMap setObject:[NSArray arrayWithObjects:@"{5651,3110};{5611,3138};{5599,3210};{5627,3214};{5635,3194};{5651,3206};{5695,3206};{5751,3258};{5771,3254};{5719,3198};{5695,3190};{5687,3178};{5683,3182};{5671,3162};{5659,3122}", nil] forKey:@"ER"]; 101 | [worldMap setObject:[NSArray arrayWithObjects:@"{4719,2402};{4723,2422};{4655,2462};{4631,2498};{4580.09,2579.73};{4499,2594};{4495,2598};{4459,2566};{4443,2566};{4447,2494};{4475,2430};{4407,2414};{4395,2386};{4435,2358};{4595,2374};{4679,2398};{4679,2402};{4687,2398}", @"{4721.33,2478.5};{4730.83,2486};{4720.67,2501.67};{4700.17,2490.17}", @"{4739.67,2477.67};{4748.33,2474.5};{4752.83,2483.67}", @"{4671.33,2510};{4679.67,2504};{4682.33,2507};{4675.33,2513.17}", nil] forKey:@"ES"]; 102 | [worldMap setObject:[NSArray arrayWithObjects:@"{5583,3466};{5579,3446};{5507,3382};{5511,3366};{5531,3366};{5543,3302};{5555,3306};{5599,3210};{5627,3214};{5635,3194};{5651,3206};{5695,3206};{5751,3258};{5739,3278};{5739,3298};{5767,3298};{5759,3306};{5791,3346};{5871,3378};{5899,3378};{5823,3458};{5795,3458};{5739,3482};{5719,3482};{5711,3474};{5679,3498};{5639,3494};{5607,3470}", nil] forKey:@"ET"]; 103 | [worldMap setObject:[NSArray arrayWithObjects:@"{5271,1550};{5259,1454};{5183,1406};{5199,1390};{5239,1422};{5271,1414};{5295,1426};{5335,1362};{5371,1358};{5403,1374};{5411,1382};{5399,1402};{5383,1414};{5395,1414};{5387,1426};{5395,1446};{5427,1466};{5403,1498};{5431,1554};{5423,1558};{5419,1582};{5443,1622};{5427,1638};{5471,1670};{5459,1690};{5371,1766};{5247,1794};{5199,1766};{5207,1726};{5195,1678};{5287,1590};{5307,1586};{5303,1562}", nil] forKey:@"FI"]; 104 | [worldMap setObject:[NSArray arrayWithObjects:@"{9318.16,4045.3};{9292.48,4064.04};{9317.84,4074.22};{9334.15,4066.62}", @"{9327.69,4032.22};{9334.48,4038.84};{9373.56,4033.68};{9362.26,4015.58}", nil] forKey:@"FJ"]; 105 | [worldMap setObject:[NSArray arrayWithObjects:@"{4595,2374};{4679,2398};{4687,2398};{4719,2402};{4723,2378};{4751,2370};{4803,2382};{4824.67,2368.45};{4835,2362};{4839,2346};{4819,2342};{4823,2330};{4815,2318};{4827,2306};{4819,2274};{4799,2282};{4823,2242};{4839,2238};{4855,2190};{4807,2174};{4791,2170};{4783,2170};{4707,2118};{4679,2126};{4679,2150};{4635,2178};{4611,2174};{4607,2166};{4591,2166};{4599,2202};{4567,2202};{4555,2194};{4515,2202};{4527,2230};{4575,2238};{4611,2302};{4607,2342}", @"{4887.88,2382.5};{4890.5,2411.62};{4881.12,2434.38};{4866,2418};{4866.62,2399.88};{4883.5,2392.12}", nil] forKey:@"FR"]; 106 | [worldMap setObject:[NSArray arrayWithObjects:@"{3119,5070};{3047,5070};{3051,5090};{3035,5090};{3047,5102};{3083,5074};{3067,5106};{3123,5082}", nil] forKey:@"FK"]; 107 | [worldMap setObject:[NSArray arrayWithObjects:@"{4931,3690};{4943,3678};{4951,3686};{4943,3650};{4967,3646};{4967,3638};{4975,3634};{4983,3650};{5011,3650};{5019,3602};{5003,3594};{5019,3554};{4987,3554};{4987,3530};{4939,3530};{4939,3562};{4891,3562};{4887,3586};{4871,3610};{4883,3638}", nil] forKey:@"GA"]; 108 | [worldMap setObject:[NSArray arrayWithObjects:@"{4647,2130};{4675,2114};{4675,2106};{4653,2106};{4683,2082};{4687,2062};{4671,2050};{4651,2050};{4647,2058};{4639,2054};{4647,2046};{4627,1998};{4607,1990};{4595,1954};{4559,1938};{4591,1878};{4535,1878};{4559,1842};{4507,1842};{4483,1886};{4475,1930};{4515,1958};{4507,1986};{4547,1982};{4563,2038};{4531,2038};{4523,2034};{4519,2038};{4523,2046};{4515,2058};{4531,2054};{4531,2078};{4503,2086};{4507,2098};{4555,2106};{4571.17,2096.17};{4559,2110};{4527,2114};{4495,2150};{4503,2154};{4515,2142};{4531,2142};{4543,2146};{4551,2134};{4567,2130};{4607,2134};{4619,2126}", @"{4451,1974};{4427,1998};{4447,2010};{4455,1998};{4475,2014};{4499,1998};{4479,1966}", nil] forKey:@"GB"]; 109 | [worldMap setObject:[NSArray arrayWithObjects:@"{3018.62,3264.12};{3022.5,3267.5};{3016.38,3271.12}", nil] forKey:@"GD"]; 110 | [worldMap setObject:[NSArray arrayWithObjects:@"{5731,2430};{5759,2430};{5783,2442};{5823,2438};{5831,2434};{5863,2446};{5867,2438};{5855,2426};{5859,2418};{5839,2410};{5843,2402};{5695,2366};{5691,2374};{5727,2394};{5735,2426}", nil] forKey:@"GE"]; 111 | [worldMap setObject:[NSArray arrayWithObjects:@"{3223,3434};{3207,3458};{3223,3494};{3207,3526};{3247,3530};{3283,3478};{3255,3450}", nil] forKey:@"GF"]; 112 | [worldMap setObject:[NSArray arrayWithObjects:@"{4671,3426};{4655,3410};{4651,3318};{4635,3305.33};{4643,3294};{4635,3293.67};{4627,3298};{4567,3298};{4567,3342};{4575,3370};{4555,3414};{4567,3454};{4587,3462}", nil] forKey:@"GH"]; 113 | [worldMap setObject:[NSArray arrayWithObjects:@"{4499,2594};{4500.58,2596.42};{4498.31,2596.91}", nil] forKey:@"GI"]; 114 | [worldMap setObject:[NSArray arrayWithObjects:@"{2875,806};{2935,834};{2727,930};{2851,986};{2775,998};{2859,1062};{3007,1042};{3152.73,1129.71};{3194.33,1212};{3184.33,1289.33};{3242.67,1270.33};{3303,1330};{3207.19,1321.19};{3231,1390};{3307,1370};{3227,1470};{3351,1730};{3491,1786};{3591,1574};{3711,1538};{3791,1434};{4051,1358};{4047,1202};{4135,1138};{4115,878};{4323,730};{4195,706};{4047,746};{4063,674};{3767,590};{3351,646};{3387,694};{3275,662};{3287,698};{3179,682};{3011,722};{3015,762};{2975,758}", nil] forKey:@"GL"]; 115 | [worldMap setObject:[NSArray arrayWithObjects:@"{4199,3242};{4243,3230};{4267,3238};{4279,3234};{4247,3222};{4203,3230}", nil] forKey:@"GM"]; 116 | [worldMap setObject:[NSArray arrayWithObjects:@"{4291,3350};{4315,3326};{4347,3326};{4363,3358};{4359,3366};{4371,3362};{4387,3366};{4391,3390};{4403,3398};{4411,3386};{4419,3390};{4431,3318};{4395,3266};{4343,3274};{4339,3258};{4279,3254};{4279,3278};{4251,3286};{4247,3298}", nil] forKey:@"GN"]; 117 | [worldMap setObject:[NSArray arrayWithObjects:@"{3016.75,3154.25};{3022.88,3155.25};{3025.5,3149.5};{3032.62,3157.38};{3022.88,3159.5};{3018.5,3165.62}", nil] forKey:@"GP"]; 118 | [worldMap setObject:[NSArray arrayWithObjects:@"{4891,3562};{4939,3562};{4939,3530};{4895,3530};{4887,3558}", @"{4875,3490};{4867,3502};{4859,3498};{4867,3490}", nil] forKey:@"GQ"]; 119 | [worldMap setObject:[NSArray arrayWithObjects:@"{5171,2494};{5191,2462};{5191,2454};{5243,2438};{5283,2430};{5303,2442};{5327,2438};{5331,2426};{5327,2458};{5299,2450};{5263,2458};{5271,2470};{5251,2474};{5239,2466};{5231,2478};{5283,2538};{5271,2538};{5271,2554};{5259,2542};{5247,2546};{5259,2558};{5247,2562};{5235,2554};{5247,2590};{5235,2578};{5231,2590};{5219,2570};{5215,2578};{5207,2566};{5211,2562};{5195,2542};{5211,2530};{5243,2542};{5247,2538};{5215,2530};{5195,2530}", @"{5259,2614};{5259,2622};{5295.2,2630.39};{5331,2630};{5331,2622}", nil] forKey:@"GR"]; 120 | [worldMap setObject:[NSArray arrayWithObjects:@"{2303,3166};{2299,3166};{2299,3114};{2251,3114};{2251,3130};{2239,3130};{2263,3162};{2231,3162};{2215,3202};{2243,3218};{2271,3222};{2291,3206};{2323,3170}", nil] forKey:@"GT"]; 121 | [worldMap setObject:[NSArray arrayWithObjects:@"{4247,3298};{4251,3286};{4279,3278};{4279,3254};{4239,3254};{4199,3262};{4223,3278};{4235,3278};{4231,3286}", nil] forKey:@"GW"]; 122 | [worldMap setObject:[NSArray arrayWithObjects:@"{3071,3366};{3043,3390};{3055,3402};{3027,3430};{3047,3450};{3063,3454};{3071,3538};{3095,3554};{3155,3538};{3115,3478};{3139,3434}", nil] forKey:@"GY"]; 123 | [worldMap setObject:[NSArray arrayWithObjects:@"{7631,2986};{7643,2986};{7639,2994}", nil] forKey:@"HK"]; 124 | [worldMap setObject:[NSArray arrayWithObjects:@"{6563,5126};{6579,5130};{6567,5134}", nil] forKey:@"HM"]; 125 | [worldMap setObject:[NSArray arrayWithObjects:@"{2291,3206};{2335,3222};{2331,3238};{2347,3246};{2411,3194};{2455,3190};{2423,3166};{2323,3170}", nil] forKey:@"HN"]; 126 | [worldMap setObject:[NSArray arrayWithObjects:@"{5135,2294};{5107,2294};{5071,2270};{5051,2286};{5043,2306};{4999,2306};{5003,2326};{5123,2402};{5051,2326};{5055,2314};{5143,2322}", nil] forKey:@"HR"]; 127 | [worldMap setObject:[NSArray arrayWithObjects:@"{2755,3062};{2755,3106};{2687,3102};{2687,3094};{2739,3094};{2731,3074};{2711,3066};{2727,3058}", nil] forKey:@"HT"]; 128 | [worldMap setObject:[NSArray arrayWithObjects:@"{5223,2210};{5239,2222};{5223,2230};{5195,2282};{5151,2282};{5135,2294};{5107,2294};{5071,2270};{5067,2258};{5087,2230};{5087,2222};{5103,2230};{5135,2226};{5135,2222};{5179,2206}", nil] forKey:@"HU"]; 129 | [worldMap setObject:[NSArray arrayWithObjects:@"{7139,3442};{7199,3454};{7219,3482};{7363,3582};{7355,3606};{7383,3618};{7395,3650};{7415,3654};{7423,3670};{7415,3742};{7375,3734};{7323,3694};{7259,3590};{7243,3582};{7235,3546};{7183,3494};{7171,3490}", @"{7399,3642};{7419,3630};{7431,3654};{7443,3658};{7439,3674};{7423,3662};{7419,3646}", @"{7467,3658};{7463,3674};{7479,3674};{7483,3662}", @"{7423,3746};{7407,3770};{7435,3774};{7431,3782};{7647,3822};{7643,3798};{7607,3790};{7599,3778};{7635,3774};{7551,3762};{7539,3770};{7491,3766};{7483,3750}", @"{7735,3482};{7679,3478};{7647,3550};{7623,3558};{7591,3550};{7583,3562};{7543,3566};{7519,3538};{7499,3562};{7515,3622};{7523,3618};{7535,3666};{7575,3666};{7575,3682};{7647,3682};{7647,3698};{7687,3686};{7735,3562};{7763,3562};{7723,3506}", @"{7919,3542};{7931,3550};{7907,3578};{7803,3578};{7791,3606};{7819,3626};{7831,3610};{7879,3606};{7831,3646};{7875,3710};{7867,3738};{7855,3726};{7863,3706};{7839,3718};{7831,3714};{7819,3662};{7795,3670};{7807,3738};{7775,3734};{7779,3682};{7759,3678};{7795,3570};{7819,3558};{7899,3570}", @"{7647,3806};{7667,3802};{7679,3810};{7667,3822}", @"{7691,3806};{7703,3810};{7695,3822};{7683,3818}", @"{7711,3810};{7707,3830};{7747,3818}", @"{7731,3802};{7763,3806};{7767,3818};{7751,3822}", @"{7783,3818};{7803,3806};{7851,3818};{7923,3802};{7927,3810};{7835,3822}", @"{7919,3826};{7923,3838};{7887,3866};{7879,3858};{7891,3838}", @"{7803,3862};{7811,3854};{7787,3834};{7763,3838}", @"{7951,3674};{7975,3670};{7983,3686};{7971,3690}", @"{8003,3666};{8059,3666};{8079,3690};{8023,3674};{8011,3682}", @"{8015,3522};{8007,3528.86};{7987,3546};{7995,3598};{8011,3614};{7999,3586};{7999,3574};{8019,3582};{8019,3578};{8003,3570};{8019,3558};{8019,3546};{7995,3570};{7995,3562};{8003,3546};{7999,3542}", @"{7991,3626};{7987,3634};{8003,3634}", @"{7907,3634};{7959,3638};{7907,3642}", @"{8079,3622};{8119,3598};{8159,3606};{8171,3658};{8183,3674};{8199,3678};{8259,3630};{8343,3658};{8343,3826};{8311,3802};{8255,3810};{8267,3786};{8287,3782};{8263,3730};{8147,3682};{8139,3698};{8111,3662};{8155,3650};{8111,3646};{8103,3630}", @"{8171,3734};{8163,3754};{8163,3766};{8179,3754}", @"{8095,3778};{8083,3794};{8083,3802};{8095,3786}", nil] forKey:@"ID"]; 130 | [worldMap setObject:[NSArray arrayWithObjects:@"{4475,2014};{4455,1998};{4447,2010};{4427,1998};{4451,1974};{4455,1966};{4423,1970};{4407,1990};{4419,1994};{4411,2002};{4375,2002};{4375,2034};{4395,2046};{4367,2078};{4383,2102};{4471,2078};{4483,2050}", nil] forKey:@"IE"]; 131 | [worldMap setObject:[NSArray arrayWithObjects:@"{5563,2686};{5575,2682};{5575,2698};{5571,2746};{5559,2790};{5539,2738};{5551,2722}", nil] forKey:@"IL"]; 132 | [worldMap setObject:[NSArray arrayWithObjects:@"{6431,2950};{6507,2934};{6495,2898};{6487,2898};{6483,2874};{6471,2874};{6467,2862};{6491,2834};{6499,2842};{6527,2834};{6599,2746};{6599,2726};{6619,2710};{6603,2706};{6579,2650};{6591,2638};{6631,2646};{6683,2618};{6715,2650};{6707,2658};{6731,2698};{6715,2710};{6707,2702};{6699,2706};{6711,2738};{6767,2770};{6739,2806};{6827,2854};{6847,2850};{6863,2854};{6863,2862};{6883,2870};{6951,2878};{6955,2838};{6971,2830};{6971,2862};{6999,2870};{7059,2866};{7055,2850};{7047,2850};{7047,2842};{7075,2834};{7127,2798};{7147,2802};{7163,2794};{7195,2826};{7195,2838};{7183,2850};{7191,2862};{7175,2854};{7139,2874};{7111,2950};{7091,2946};{7087,2994};{7071,3002};{7063,2954};{7043,2978};{7035,2954};{7067,2918};{6999,2910};{6995,2886};{6963,2878};{6955,2894};{6975,2910};{6951,2930};{6971,2938};{6979,3006};{6927,3014};{6923,3038};{6743,3182};{6751,3238};{6735,3282};{6735,3318};{6723,3318};{6715,3342};{6695,3350};{6691,3370};{6675,3378};{6651,3354};{6643,3326};{6571,3166};{6547,3062};{6555,3042};{6543,2998};{6531,3026};{6499,3038};{6451,2994};{6483,2986};{6483,2978};{6467,2982}", nil] forKey:@"IN"]; 133 | [worldMap setObject:[NSArray arrayWithObjects:@"{5815,2566};{5755,2566};{5735,2586};{5727,2586};{5715,2650};{5659,2678};{5671,2714};{5743,2742};{5815,2802};{5863,2802};{5879,2778};{5911,2778};{5895,2726};{5835,2658};{5851,2606};{5831,2602}", nil] forKey:@"IQ"]; 134 | [worldMap setObject:[NSArray arrayWithObjects:@"{5911,2778};{5895,2726};{5835,2658};{5851,2606};{5831,2602};{5815,2566};{5799,2498};{5811,2486};{5835,2510};{5851,2514};{5859,2514};{5899,2490};{5923,2530};{5931,2554};{6003,2586};{6059,2574};{6055,2562};{6123,2530};{6247,2582};{6251,2614};{6231,2686};{6239,2734};{6263,2738};{6263,2754};{6239,2782};{6299,2854};{6299,2874};{6263,2882};{6255,2914};{6143,2898};{6131,2858};{6075,2874};{5995,2838};{5951,2770}", nil] forKey:@"IR"]; 135 | [worldMap setObject:[NSArray arrayWithObjects:@"{4019,1586};{4067,1614};{4047,1634};{4147,1654};{4283,1582};{4215,1518};{4107,1534};{4083,1566};{4043,1518};{3999,1562};{4059,1566}", nil] forKey:@"IS"]; 136 | [worldMap setObject:[NSArray arrayWithObjects:@"{4835,2362};{4871,2338};{4983,2442};{5051,2478};{5067,2514};{5051,2534};{5059,2546};{5091,2502};{5075,2486};{5091,2466};{5119,2486};{5127,2474};{5075,2442};{5059,2430};{5063,2418};{5035,2418};{4995,2366};{4963,2346};{4963,2306};{4995,2294};{4999,2270};{4959,2254};{4915,2262};{4907,2282};{4887,2274};{4875,2294};{4859,2274};{4847,2290};{4823,2290};{4827,2306};{4815,2318};{4823,2330};{4819,2342};{4839,2346}", @"{5047,2534};{5035,2578};{4963,2546}", @"{4887,2442};{4899,2466};{4891,2506};{4859,2506};{4855,2454}", nil] forKey:@"IT"]; 137 | [worldMap setObject:[NSArray arrayWithObjects:@"{2579,3102};{2607,3094};{2639,3110};{2611,3118}", nil] forKey:@"JM"]; 138 | [worldMap setObject:[NSArray arrayWithObjects:@"{5659,2678};{5607,2710};{5575,2698};{5571,2746};{5559,2790};{5559,2798};{5587,2802};{5639,2762};{5611,2734};{5671,2714}", nil] forKey:@"JO"]; 139 | [worldMap setObject:[NSArray arrayWithObjects:@"{8359,2310};{8351,2378};{8311,2394};{8319,2430};{8339,2422};{8327,2402};{8367,2394};{8399,2414};{8463,2374};{8455,2342};{8427,2354};{8367,2302}", @"{8159,2650};{8179,2662};{8163,2682};{8147,2674};{8131,2698};{8115,2678};{8131,2658};{8139,2666};{8147,2662};{8151,2654}", @"{8079,2662};{8111,2690};{8087,2738};{8075,2750};{8059,2738};{8067,2698};{8039,2682}", @"{8327,2438};{8339,2434};{8375,2498};{8343,2542};{8335,2606};{8223,2650};{8207,2678};{8183,2654};{8195,2638};{8119,2654};{8111,2662};{8079,2658};{8083,2646};{8127,2614};{8191,2610};{8207,2618};{8215,2610};{8211,2598};{8239,2566};{8247,2578};{8299,2534};{8319,2482};{8315,2458}", nil] forKey:@"JP"]; 140 | [worldMap setObject:[NSArray arrayWithObjects:@"{5531,3478};{5543,3466};{5583,3466};{5607,3470};{5639,3494};{5679,3498};{5711,3474};{5719,3482};{5739,3482};{5715,3514};{5715,3610};{5731,3630};{5707,3654};{5695,3658};{5695,3674};{5671,3710};{5627,3678};{5631,3670};{5535,3614};{5531,3582};{5563,3534}", nil] forKey:@"KE"]; 141 | [worldMap setObject:[NSArray arrayWithObjects:@"{6575,2494};{6499,2498};{6463,2494};{6459,2486};{6479,2474};{6495,2482};{6503,2474};{6523,2478};{6559,2454};{6523,2434};{6515,2442};{6487,2430};{6511,2414};{6503,2410};{6519,2390};{6567,2402};{6587,2378};{6627,2390};{6719,2390};{6747,2410};{6691,2446};{6659,2450};{6643,2466};{6607,2466};{6583,2478};{6579,2494}", nil] forKey:@"KG"]; 142 | [worldMap setObject:[NSArray arrayWithObjects:@"{7383,3314};{7415,3298};{7427,3306};{7419,3282};{7463,3262};{7463,3202};{7447,3210};{7439,3206};{7427,3210};{7427,3218};{7423,3222};{7403,3210};{7351,3210};{7327,3234};{7339,3274};{7347,3290};{7347,3302};{7355,3302};{7359,3298};{7363,3306};{7359,3310};{7363,3314};{7367,3310}", nil] forKey:@"KH"]; 143 | [worldMap setObject:[NSArray arrayWithObjects:@"{7907,2482};{7975,2422};{8003,2438};{8007,2418};{8047,2402};{8055,2386};{8071,2406};{8043,2430};{8047,2454};{7987,2486};{7987,2506};{8011,2522};{7967,2546};{7919,2538};{7931,2494}", nil] forKey:@"KP"]; 144 | [worldMap setObject:[NSArray arrayWithObjects:@"{8011,2522};{8043,2574};{8031,2630};{7963,2650};{7955,2630};{7967,2598};{7955,2578};{7971,2570};{7967,2546}", nil] forKey:@"KR"]; 145 | [worldMap setObject:[NSArray arrayWithObjects:@"{5911,2778};{5895,2794};{5911,2818};{5891,2818};{5887,2806};{5863,2802};{5879,2778}", nil] forKey:@"KW"]; 146 | [worldMap setObject:[NSArray arrayWithObjects:@"{2482.74,3012.25};{2490.15,3008.87};{2486.86,3012.25}", @"{2496.75,3010.45};{2498.82,3012.74};{2502.79,3008.19}", nil] forKey:@"KY"]; 147 | [worldMap setObject:[NSArray arrayWithObjects:@"{6111,2438};{6099,2442};{6067,2406};{6035,2410};{6019,2426};{6015,2410};{6027,2398};{6003,2390};{5975,2346};{5959,2342};{5959,2330};{5987,2334};{5979,2322};{5991,2310};{6027,2306};{6035,2266};{5983,2250};{5931,2274};{5863,2206};{5891,2138};{5911,2162};{5923,2154};{5919,2134};{5975,2094};{6015,2094};{6103,2134};{6175,2114};{6207,2138};{6251,2126};{6255,2106};{6215,2086};{6243,2074};{6235,2058};{6247,2050};{6267,2050};{6271,2046};{6247,2038};{6247,2018};{6463,1966};{6499,1966};{6511,2010};{6571,2018};{6571,2030};{6655,2002};{6743,2126};{6767,2110};{6799,2130};{6831,2118};{6903,2170};{6919,2166};{6935,2186};{6891,2210};{6891,2250};{6819,2250};{6795,2314};{6747,2322};{6747,2410};{6719,2390};{6627,2390};{6587,2378};{6567,2402};{6519,2390};{6503,2410};{6451,2438};{6439,2458};{6419,2442};{6395,2442};{6387,2418};{6375,2418};{6375,2386};{6367,2390};{6343,2362};{6267,2370};{6243,2342};{6179,2302};{6111,2322}", nil] forKey:@"KZ"]; 148 | [worldMap setObject:[NSArray arrayWithObjects:@"{7295,3014};{7267,3046};{7279,3054};{7279,3070};{7299,3070};{7291,3122};{7295,3126};{7323,3106};{7335,3118};{7355,3098};{7391,3130};{7391,3150};{7415,3174};{7411,3190};{7411,3206};{7403,3210};{7423,3222};{7427,3218};{7427,3210};{7439,3206};{7447,3210};{7463,3202};{7467,3186};{7455,3170};{7463,3166};{7399,3098};{7403,3094};{7371,3074};{7399,3054};{7375,3030};{7363,3038};{7343,3022};{7343,3010};{7323,2990};{7311,2990};{7307,2994};{7311,3026};{7299,3022}", nil] forKey:@"LA"]; 149 | [worldMap setObject:[NSArray arrayWithObjects:@"{5583,2642};{5591,2642};{5599,2654};{5575,2682};{5563,2686}", nil] forKey:@"LB"]; 150 | [worldMap setObject:[NSArray arrayWithObjects:@"{3038.88,3214.75};{3035.38,3222.88};{3039.88,3224.5}", nil] forKey:@"LC"]; 151 | [worldMap setObject:[NSArray arrayWithObjects:@"{6739,3330};{6763,3346};{6787,3390};{6791,3410};{6759,3434};{6743,3426};{6731,3378};{6743,3342}", nil] forKey:@"LK"]; 152 | [worldMap setObject:[NSArray arrayWithObjects:@"{4439,3474};{4443,3438};{4415,3414};{4419,3390};{4411,3386};{4403,3398};{4391,3390};{4387,3366};{4371,3362};{4339,3406};{4399,3454}", nil] forKey:@"LR"]; 153 | [worldMap setObject:[NSArray arrayWithObjects:@"{5375,4418};{5415,4382};{5391,4358};{5351,4390}", nil] forKey:@"LS"]; 154 | [worldMap setObject:[NSArray arrayWithObjects:@"{5199,1966};{5191,1938};{5223,1926};{5295,1926};{5339,1954};{5311,2006};{5259,2018};{5235,1998};{5235,1974}", nil] forKey:@"LT"]; 155 | [worldMap setObject:[NSArray arrayWithObjects:@"{4791,2158};{4791,2170};{4807,2174};{4811,2162};{4799,2150}", nil] forKey:@"LU"]; 156 | [worldMap setObject:[NSArray arrayWithObjects:@"{5191,1938};{5223,1926};{5295,1926};{5339,1954};{5379,1934};{5371,1890};{5347,1878};{5335,1882};{5303,1862};{5279,1870};{5279,1894};{5259,1906};{5231,1874};{5199,1894}", nil] forKey:@"LV"]; 157 | [worldMap setObject:[NSArray arrayWithObjects:@"{5299,2730};{5299,3002};{5299,3058};{5271,3058};{5271,3070};{5059,2962};{5035.03,2973.9};{5015,2986};{4995,2970};{4955,2958};{4887,2886};{4887,2770};{4911,2754};{4903,2734};{4943,2706};{4943,2686};{5039,2710};{5051,2734};{5143,2770};{5171,2742};{5163,2726};{5211,2690};{5247,2702};{5251,2714};{5295,2722}", nil] forKey:@"LY"]; 158 | [worldMap setObject:[NSArray arrayWithObjects:@"{4583,2630};{4607,2714};{4539,2726};{4539,2742};{4411,2814};{4411,2842};{4295,2842};{4375,2794};{4383,2734};{4415,2686};{4459,2662};{4483,2610};{4499,2606};{4507,2622}", nil] forKey:@"MA"]; 159 | [worldMap setObject:[NSArray arrayWithObjects:@"{4823,2370};{4824.88,2368.75};{4824.75,2370.25}", nil] forKey:@"MC"]; 160 | [worldMap setObject:[NSArray arrayWithObjects:@"{5343,2210};{5383,2266};{5375,2282};{5387,2314};{5419,2310};{5439,2282};{5427,2270};{5403,2222};{5363,2206}", nil] forKey:@"MD"]; 161 | [worldMap setObject:[NSArray arrayWithObjects:@"{5175,2386};{5167,2398};{5147,2422};{5123,2402};{5143,2370}", nil] forKey:@"ME"]; 162 | [worldMap setObject:[NSArray arrayWithObjects:@"{5827,4274};{5875,4258};{5967,3994};{5935,3902};{5875,3990};{5807,4018};{5791,4050};{5807,4118};{5779,4166};{5787,4218};{5803,4262}", nil] forKey:@"MG"]; 163 | [worldMap setObject:[NSArray arrayWithObjects:@"{5227,2406};{5239,2418};{5243,2438};{5191,2454};{5179,2442};{5183,2418}", nil] forKey:@"MK"]; 164 | [worldMap setObject:[NSArray arrayWithObjects:@"{4507,2918};{4467,2918};{4491,3150};{4499,3158};{4495,3178};{4359,3178};{4351,3190};{4335,3174};{4319,3202};{4339.03,3257.91};{4343,3274};{4395,3266};{4431,3318};{4455,3322};{4475,3310};{4479,3322};{4495,3314};{4499,3278};{4563,3218};{4583,3214};{4587,3206};{4615,3194};{4645.25,3194};{4665,3194};{4675,3182};{4731,3182};{4751,3154};{4751,3082};{4723,3082};{4667,3026}", nil] forKey:@"ML"]; 165 | [worldMap setObject:[NSArray arrayWithObjects:@"{7059,3030};{7071,3022};{7071,3002};{7087,2994};{7091,2946};{7111,2950};{7139,2874};{7175,2854};{7191,2862};{7183,2850};{7195,2838};{7195,2826};{7207,2818};{7231,2846};{7231,2894};{7203,2926};{7203,2946};{7235,2942};{7239,2970};{7255,2974};{7243,2998};{7267,3002};{7271,3018};{7295,3014};{7267,3046};{7215,3066};{7199,3098};{7207,3118};{7235,3154};{7227,3166};{7227,3182};{7219,3186};{7227,3210};{7247,3226};{7243,3242};{7255,3278};{7227,3326};{7227,3302};{7231,3282};{7231,3258};{7187,3130};{7179,3150};{7147,3174};{7115,3162};{7123,3122};{7107,3086};{7095,3074};{7099,3066};{7079,3054}", nil] forKey:@"MM"]; 166 | [worldMap setObject:[NSArray arrayWithObjects:@"{6947,2182};{6951,2202};{7007,2226};{7031,2286};{7019,2302};{7027,2314};{7087,2322};{7139,2342};{7175,2394};{7287,2394};{7399,2430};{7455,2406};{7515,2402};{7579,2362};{7567,2342};{7583,2318};{7627,2326};{7723,2270};{7783,2270};{7791,2258};{7755,2222};{7683,2234};{7675,2218};{7703,2158};{7639,2146};{7547,2182};{7403,2138};{7363,2150};{7327,2134};{7323,2106};{7239,2082};{7207,2122};{7219,2138};{7211,2154};{7195,2162};{7127,2154};{7115,2134};{7063,2126}", nil] forKey:@"MN"]; 167 | [worldMap setObject:[NSArray arrayWithObjects:@"{3031.62,3194.75};{3040.12,3197.5};{3041.25,3206.62};{3035.12,3204.88}", nil] forKey:@"MQ"]; 168 | [worldMap setObject:[NSArray arrayWithObjects:@"{4195,3022};{4295,3022};{4295,2974};{4323,2962};{4323,2890};{4411,2890};{4411,2854};{4507,2918};{4467,2918};{4491,3150};{4499,3158};{4495,3178};{4359,3178};{4351,3190};{4335,3174};{4319,3202};{4263,3146};{4207,3158};{4219,3118};{4207,3074};{4215,3050}", nil] forKey:@"MR"]; 169 | [worldMap setObject:[NSArray arrayWithObjects:@"{3004,3142.62};{3007.12,3142};{3006.25,3145.5}", nil] forKey:@"MS"]; 170 | [worldMap setObject:[NSArray arrayWithObjects:@"{5013.88,2597.25};{5023.25,2603.5};{5018.25,2606}", nil] forKey:@"MT"]; 171 | [worldMap setObject:[NSArray arrayWithObjects:@"{5503,3830};{5535,3842};{5559,3894};{5555,3950};{5583,3974};{5579,4014};{5563,4026};{5567,4042};{5539,4006};{5547,3990};{5543,3970};{5523,3974};{5511,3958};{5523,3866}", nil] forKey:@"MW"]; 172 | [worldMap setObject:[NSArray arrayWithObjects:@"{2087,2890};{2039,2878};{1975,2782};{1951,2778};{1931,2806};{1843,2726};{1799,2726};{1799,2738};{1723,2738};{1627,2702};{1563,2702};{1599,2782};{1647,2822};{1639,2842};{1615,2838};{1691,2890};{1691,2922};{1755,2974};{1767,2962};{1627,2766};{1627,2722};{1663,2738};{1691,2806};{1875,3014};{1867,3046};{1919,3102};{2103,3174};{2139,3158};{2163,3162};{2215,3202};{2231,3162};{2263,3162};{2239,3130};{2251,3130};{2251,3114};{2299,3114};{2319,3094};{2335,3098};{2355,3010};{2267,3026};{2255,3074};{2227,3094};{2155,3106};{2143,3090};{2123,3090};{2067,2994}", nil] forKey:@"MX"]; 173 | [worldMap setObject:[NSArray arrayWithObjects:@"{7271,3422};{7275,3418};{7295,3426};{7295,3442};{7315,3438};{7323,3426};{7355,3458};{7355,3514};{7363,3522};{7379,3550};{7363,3550};{7359,3554};{7299,3514};{7299,3502};{7283,3486}", @"{7519,3538};{7543,3566};{7583,3562};{7591,3550};{7623,3558};{7647,3550};{7679,3478};{7735,3482};{7755,3474};{7743,3458};{7771,3450};{7711,3402};{7663,3458};{7671,3474};{7655,3462};{7655,3478};{7651,3482};{7639,3470};{7607,3506};{7567,3518};{7555,3550}", nil] forKey:@"MY"]; 174 | [worldMap setObject:[NSArray arrayWithObjects:@"{5703,3866};{5623,3894};{5559,3894};{5555,3950};{5583,3974};{5579,4014};{5563,4026};{5567,4042};{5539,4006};{5547,3990};{5543,3970};{5523,3974};{5511,3958};{5435,3986};{5439,4002};{5439,4010};{5503,4030};{5503,4126};{5463,4186};{5479,4286};{5483,4310};{5503,4310};{5503,4290};{5495,4286};{5575,4226};{5571,4178};{5551,4130};{5615,4058};{5687,4022};{5711,3978}", nil] forKey:@"MZ"]; 175 | [worldMap setObject:[NSArray arrayWithObjects:@"{5163,4254};{5163,4174};{5191,4174};{5191,4074};{5251,4066};{5259,4078};{5299,4058};{5279,4050};{5255,4058};{5187,4066};{5139,4062};{5123,4050};{5007,4050};{4983,4038};{4947,4046};{5019,4202};{5031,4298};{5071,4362};{5087,4342};{5099,4362};{5147,4370};{5163,4354}", nil] forKey:@"NA"]; 176 | [worldMap setObject:[NSArray arrayWithObjects:@"{8945,4124};{8983,4144};{9025,4185};{8974,4158}", nil] forKey:@"NC"]; 177 | [worldMap setObject:[NSArray arrayWithObjects:@"{4735,3278};{4711,3258};{4703,3274};{4644.5,3194};{4665.33,3194};{4675,3182};{4731,3182};{4751,3154};{4751,3082};{4795,3074};{4831,3034};{4955,2958};{4995,2970};{5015,2986};{5035,2974};{5059,3046};{5047,3138};{4995,3206};{4995,3226};{4967,3242};{4923,3234};{4891,3250};{4847,3234};{4823,3246};{4759,3222}", nil] forKey:@"NE"]; 178 | [worldMap setObject:[NSArray arrayWithObjects:@"{4863,3462};{4915,3402};{4939,3418};{5007,3290};{5023,3282};{5019,3262};{5011,3262};{5011,3242};{4995,3226};{4967,3242};{4923,3234};{4891,3250};{4847,3234};{4823,3246};{4759,3222};{4735,3278};{4731,3286};{4739,3314};{4719,3350};{4711,3350};{4711,3418};{4755,3418};{4799,3474}", nil] forKey:@"NG"]; 179 | [worldMap setObject:[NSArray arrayWithObjects:@"{2347,3246};{2411,3194};{2455,3190};{2435,3286};{2443,3302};{2435,3306};{2411,3294};{2411,3290};{2399,3274};{2383,3270};{2391,3290};{2387,3294};{2339,3250}", nil] forKey:@"NI"]; 180 | [worldMap setObject:[NSArray arrayWithObjects:@"{4795,2114};{4803,2102};{4795,2090};{4819,2086};{4827,2042};{4819,2034};{4787,2038};{4767,2050};{4759,2074};{4727,2106};{4771,2102}", nil] forKey:@"NL"]; 181 | [worldMap setObject:[NSArray arrayWithObjects:@"{4931,1826};{4947,1826};{4951,1794};{4967,1786};{4963,1750};{4979,1734};{4959,1718};{4955,1658};{4979,1622};{5007,1626};{5011,1606};{4999,1602};{5019,1534};{5035,1534};{5067,1494};{5063,1478};{5095,1450};{5107,1454};{5115,1430};{5163,1438};{5167,1406};{5183,1406};{5199,1390};{5239,1422};{5271,1414};{5295,1426};{5335,1362};{5371,1358};{5403,1374};{5411,1382};{5399,1402};{5451,1370};{5395,1354};{5431,1358};{5455,1342};{5395,1318};{5375,1334};{5387,1314};{5355,1314};{5335,1342};{5339,1314};{5299,1350};{5319,1310};{5287,1314};{5247,1358};{5243,1346};{5135,1362};{4883,1646};{4779,1702};{4767,1746};{4787,1846};{4827,1866};{4855,1862};{4919,1810}", nil] forKey:@"NO"]; 182 | [worldMap setObject:[NSArray arrayWithObjects:@"{6955,2838};{6951,2878};{6883,2870};{6863,2862};{6863,2854};{6847,2850};{6827,2854};{6739,2806};{6767,2770};{6795,2770};{6895,2830}", nil] forKey:@"NP"]; 183 | [worldMap setObject:[NSArray arrayWithObjects:@"{9179,4530};{9231,4630};{9223,4666};{9203,4678};{9243,4706};{9231,4738};{9247,4750};{9331,4630};{9299,4634};{9259,4622}", @"{9175,4714};{9187,4738};{9219,4734};{9215,4758};{9175,4810};{9183,4822};{9139,4834};{9095,4910};{9011,4894};{9023,4866};{9127,4790};{9143,4754};{9159,4742};{9159,4726}", nil] forKey:@"NZ"]; 184 | [worldMap setObject:[NSArray arrayWithObjects:@"{6115,2890};{6119,2882};{6123,2882};{6119,2902}", @"{6119,2922};{6107,2922};{6107,2946};{6099,2946};{6087,2986};{6103,3002};{6083,3058};{6003,3086};{6035,3150};{6159,3086};{6211,2986}", nil] forKey:@"OM"]; 185 | [worldMap setObject:[NSArray arrayWithObjects:@"{2467,3334};{2459,3370};{2491,3374};{2515,3398};{2539,3390};{2527,3370};{2555,3350};{2583,3366};{2579,3374};{2595,3398};{2611,3378};{2607,3358};{2575,3338};{2547,3334};{2507,3358}", nil] forKey:@"PA"]; 186 | [worldMap setObject:[NSArray arrayWithObjects:@"{2531,3678};{2527,3706};{2551,3706};{2563,3722};{2591,3666};{2627,3654};{2663,3614};{2663,3590};{2703,3618};{2719,3650};{2755,3646};{2799,3658};{2783,3686};{2803,3698};{2779,3698};{2727,3722};{2719,3758};{2695,3786};{2747,3854};{2787,3838};{2787,3878};{2815,3878};{2835,3918};{2819,3998};{2803,3994};{2803,4010};{2823,4018};{2827,4030};{2815,4050};{2791,4074};{2635,3958};{2639,3946};{2539,3766};{2507,3738};{2507,3698}", nil] forKey:@"PE"]; 187 | [worldMap setObject:[NSArray arrayWithObjects:@"{8343,3826};{8343,3658};{8459,3706};{8467,3730};{8511,3746};{8523,3766};{8499,3766};{8543,3830};{8559,3826};{8599,3866};{8519,3858};{8467,3798};{8435,3786};{8387,3838}", @"{8527,3734};{8575,3758};{8635,3730};{8639,3702};{8619,3702};{8623,3718};{8599,3734}", @"{8655,3718};{8659,3694};{8603,3658};{8647,3694}", @"{8703,3730};{8739,3762};{8727,3770};{8707,3746}", nil] forKey:@"PG"]; 188 | [worldMap setObject:[NSArray arrayWithObjects:@"{7814,3092.33};{7848,3103};{7851.33,3151.67};{7826,3184.33};{7846,3217};{7900,3226.33};{7897.33,3251.67};{7841.33,3221.67};{7814,3227};{7786.67,3156.33};{7804.67,3160.33}", @"{7801.33,3231};{7827.33,3232.33};{7826.67,3266.33}", @"{7873.33,3273};{7878,3256.33};{7896.67,3271};{7881.33,3265.67}", @"{7841.33,3274.33};{7878.67,3284.33};{7845.33,3309.67}", @"{7854,3329};{7880.67,3298.33};{7877.33,3334.33};{7897.33,3293.67};{7896,3314.33};{7870.67,3347.67}", @"{7902.67,3257.67};{7928,3253.67};{7942,3299}", @"{7920,3285};{7906,3295};{7927.33,3323.67}", @"{7902.67,3318.33};{7888.67,3339};{7908.67,3329.67}", @"{7777.33,3285};{7784.67,3311.67};{7716.67,3369.67};{7772,3306.33}", @"{7937,3318};{7933.5,3349.5};{7896,3371.5};{7885.5,3358};{7848.5,3377.5};{7843,3406.5};{7861,3385};{7867,3395};{7889,3379};{7903.5,3392.5};{7896.5,3421.5};{7934,3439.5};{7939,3417.5};{7931,3408.5};{7945,3391};{7952.5,3422};{7965.5,3383.5}", @"{7837.5,3414};{7853,3412.5};{7845.5,3419}", nil] forKey:@"PH"]; 189 | [worldMap setObject:[NSArray arrayWithObjects:@"{6255,2914};{6263,2882};{6299,2874};{6299,2854};{6239,2782};{6279,2794};{6323,2794};{6383,2778};{6383,2750};{6431,2726};{6447,2730};{6459,2722};{6467,2690};{6487,2682};{6475,2662};{6499,2662};{6507,2654};{6503,2646};{6523,2626};{6511,2598};{6523,2586};{6555,2574};{6583,2578};{6607,2566};{6635,2582};{6639,2606};{6683,2618};{6631,2646};{6591,2638};{6579,2650};{6603,2706};{6619,2710};{6599,2726};{6599,2746};{6527,2834};{6499,2842};{6491,2834};{6467,2862};{6471,2874};{6483,2874};{6487,2898};{6495,2898};{6507,2934};{6431,2950};{6415,2950};{6387,2906}", nil] forKey:@"PK"]; 190 | [worldMap setObject:[NSArray arrayWithObjects:@"{5011,2018};{5123,1986};{5135,2002};{5235,1998};{5259,2018};{5267,2062};{5251,2078};{5259,2082};{5259,2098};{5271,2138};{5235,2170};{5239,2186};{5231,2186};{5135,2170};{5127,2158};{5031,2122};{5023,2066};{5011,2054};{5019,2046}", nil] forKey:@"PL"]; 191 | [worldMap setObject:[NSArray arrayWithObjects:@"{2875,3098};{2875,3110};{2911,3110};{2915,3098}", nil] forKey:@"PR"]; 192 | [worldMap setObject:[NSArray arrayWithObjects:@"{4407,2414};{4475,2430};{4447,2494};{4443,2566};{4403,2570};{4407,2526};{4391,2522};{4411,2442}", nil] forKey:@"PT"]; 193 | [worldMap setObject:[NSArray arrayWithObjects:@"{2995,4182};{3019,4110};{3087,4102};{3115,4122};{3115,4178};{3175,4182};{3187,4230};{3215,4230};{3207,4274};{3199,4306};{3175,4326};{3099,4322};{3127,4270};{3047,4226}", nil] forKey:@"PY"]; 194 | [worldMap setObject:[NSArray arrayWithObjects:@"{5987,2934};{5975,2926};{5975,2898};{5987,2886};{5995,2894};{5995,2922}", nil] forKey:@"QA"]; 195 | [worldMap setObject:[NSArray arrayWithObjects:@"{5239,2222};{5223,2230};{5195,2282};{5171,2282};{5235,2346};{5243,2358};{5315,2362};{5355,2350};{5391,2362};{5403,2326};{5415,2326};{5419,2310};{5387,2314};{5375,2282};{5383,2266};{5343,2210};{5295,2234}", nil] forKey:@"RO"]; 196 | [worldMap setObject:[NSArray arrayWithObjects:@"{5171,2282};{5235,2346};{5227,2358};{5243,2378};{5227,2406};{5183,2418};{5167,2398};{5175,2386};{5143,2370};{5143,2322};{5135,2294};{5151,2282}", nil] forKey:@"RS"]; 197 | [worldMap setObject:[NSArray arrayWithObjects:@"{5135,2002};{5199,1966};{5235,1974};{5235,1998}", @"{5375,1810};{5359,1834};{5367,1870};{5355,1882};{5371,1890};{5379,1934};{5451,1954};{5451,1986};{5499,2034};{5467,2042};{5475,2082};{5527,2070};{5539,2110};{5559,2110};{5575,2142};{5603,2146};{5623,2138};{5691,2170};{5683,2226};{5651,2230};{5643,2250};{5675,2254};{5631,2270};{5647,2282};{5619,2310};{5603,2306};{5599,2314};{5691,2374};{5695,2366};{5843,2402};{5839,2410};{5859,2418};{5899,2442};{5915,2422};{5867,2338};{5891,2298};{5919,2290};{5931,2274};{5863,2206};{5891,2138};{5911,2162};{5923,2154};{5919,2134};{5975,2094};{6015,2094};{6103,2134};{6175,2114};{6207,2138};{6251,2126};{6255,2106};{6215,2086};{6243,2074};{6235,2058};{6247,2050};{6267,2050};{6271,2046};{6247,2038};{6247,2018};{6463,1966};{6499,1966};{6511,2010};{6571,2018};{6571,2030};{6655,2002};{6743,2126};{6767,2110};{6799,2130};{6831,2118};{6903,2170};{6919,2166};{6935,2186};{6947,2182};{7063,2126};{7115,2134};{7127,2154};{7195,2162};{7211,2154};{7219,2138};{7207,2122};{7239,2082};{7323,2106};{7327,2134};{7363,2150};{7403,2138};{7547,2182};{7639,2146};{7703,2158};{7735,2170};{7811,2086};{7811,2066};{7791,2066};{7791,2058};{7815,2038};{7879,2030};{7947,2058};{7991,2162};{8051,2178};{8079,2234};{8179,2214};{8135,2322};{8103,2310};{8083,2326};{8083,2386};{8071,2390};{8071,2406};{8115,2382};{8135,2394};{8199,2358};{8319,2206};{8355,2038};{8287,2002};{8263,2030};{8195,1978};{8399,1814};{8715,1818};{8691,1798};{8771,1718};{8851,1714};{8847,1762};{8959,1682};{8963,1690};{8935,1750};{8763,1882};{8727,1962};{8755,2122};{8903,1986};{8895,1938};{8927,1934};{8919,1870};{8895,1866};{8967,1790};{9127,1770};{9299,1682};{9343,1698};{9359,1678};{9287,1594};{9363,1586};{9395,1542};{9547,1614};{9635,1534};{9519,1490};{9511,1506};{9503,1478};{9263,1366};{9111,1354};{9131,1406};{9091,1414};{9067,1362};{8871,1390};{8807,1314};{8643,1326};{8535,1250};{8339,1222};{8311,1290};{8163,1302};{8127,1270};{8075,1326};{8015,1206};{7883,1178};{7863,1218};{7611,1166};{7435,1206};{7627,1090};{7619,1046};{7551,1018};{7447,1030};{7455,1006};{7379,962};{7159,1066};{6991,1078};{6895,1138};{6907,1166};{6751,1190};{6771,1246};{6827,1282};{6763,1262};{6671,1238};{6639,1282};{6699,1314};{6615,1294};{6611,1230};{6559,1294};{6591,1338};{6583,1402};{6647,1410};{6595,1426};{6595,1470};{6539,1530};{6483,1522};{6543,1486};{6571,1430};{6547,1314};{6559,1222};{6487,1202};{6435,1278};{6391,1370};{6451,1414};{6435,1434};{6291,1374};{6215,1362};{6243,1410};{6203,1422};{6191,1410};{6035,1418};{5899,1470};{5891,1498};{5827,1486};{5863,1454};{5803,1426};{5787,1486};{5795,1534};{5743,1522};{5679,1562};{5695,1598};{5611,1574};{5603,1594};{5635,1614};{5627,1634};{5555,1606};{5551,1542};{5491,1502};{5495,1490};{5575,1526};{5647,1538};{5695,1530};{5727,1494};{5719,1466};{5587,1402};{5451,1370};{5399,1402};{5383,1414};{5395,1414};{5387,1426};{5395,1446};{5427,1466};{5403,1498};{5431,1554};{5423,1558};{5419,1582};{5443,1622};{5427,1638};{5471,1670};{5459,1690};{5371,1766};{5427,1786};{5379,1798}", @"{5923,1382};{5903,1414};{5931,1418};{5959,1394}", @"{6135,1338};{5995,1290};{6119,1110};{6247,1046};{6403,1010};{6451,1018};{6439,1050};{6243,1102};{6147,1182};{6095,1250};{6107,1298};{6155,1322}", @"{7319,870};{7251,950};{7395,926}", @"{7263,842};{7259,898};{7103,854}", @"{7091,842};{7191,814};{7211,786};{7147,762};{7039,834}", @"{8367,2034};{8367,2282};{8403,2266};{8387,2222};{8411,2174};{8431,2182};{8395,2018}", nil] forKey:@"RU"]; 198 | [worldMap setObject:[NSArray arrayWithObjects:@"{5439,3614};{5427,3626};{5419,3622};{5399,3650};{5399,3662};{5447,3650}", nil] forKey:@"RW"]; 199 | [worldMap setObject:[NSArray arrayWithObjects:@"{5911,2818};{5891,2818};{5887,2806};{5863,2802};{5815,2802};{5743,2742};{5671,2714};{5611,2734};{5639,2762};{5587,2802};{5559,2798};{5547,2830};{5559,2830};{5627,2938};{5651,2954};{5667,2994};{5663,3002};{5687,3050};{5707,3062};{5763,3154};{5775,3146};{5775,3130};{5783,3126};{5867,3134};{5879,3142};{5903,3110};{6003,3086};{6083,3058};{6103,3002};{6087,2986};{6023,2978};{5995,2942};{5987,2934};{5975,2926};{5955,2894};{5951,2866};{5923,2846}", nil] forKey:@"SA"]; 200 | [worldMap setObject:[NSArray arrayWithObjects:@"{8749,3763};{8766.5,3771};{8777.5,3784}", @"{8800,3786.5};{8838,3805.5};{8833.5,3811}", @"{8833,3829.5};{8852,3835};{8862.5,3847};{8841,3846.5}", @"{8857,3807.5};{8864,3807};{8880,3842};{8862,3826}", @"{8877.5,3853.5};{8899,3863.5};{8896,3874.5}", @"{8762.5,3795.5};{8777.5,3799.5};{8793,3819.5};{8771.5,3811}", nil] forKey:@"SB"]; 201 | [worldMap setObject:[NSArray arrayWithObjects:@"{5243,3298};{5215,3246};{5247,3170};{5271,3170};{5271,3070};{5271,3058};{5299,3058};{5299,3002};{5511,3002};{5531,3010};{5575,2970};{5607,2998};{5623,3090};{5651,3110};{5611,3138};{5599,3210};{5555,3306};{5543,3302};{5531,3366};{5511,3366};{5507,3382};{5579,3446};{5583,3466};{5543,3466};{5531,3478};{5519,3490};{5451,3494};{5359,3454}", nil] forKey:@"SD"]; 202 | [worldMap setObject:[NSArray arrayWithObjects:@"{4931,1826};{4979,1922};{4967,1934};{4983,1966};{5015,1958};{5023,1938};{5063,1934};{5083,1842};{5139,1798};{5111,1766};{5095,1758};{5091,1722};{5127,1666};{5207,1606};{5195,1590};{5227,1546};{5271,1550};{5259,1454};{5183,1406};{5167,1406};{5163,1438};{5115,1430};{5107,1454};{5095,1450};{5063,1478};{5067,1494};{5035,1534};{5019,1534};{4999,1602};{5011,1606};{5007,1626};{4979,1622};{4955,1658};{4959,1718};{4979,1734};{4963,1750};{4967,1786};{4951,1794};{4947,1826}", nil] forKey:@"SE"]; 203 | [worldMap setObject:[NSArray arrayWithObjects:@"{7363,3550};{7359,3554};{7367,3558};{7371,3550}", nil] forKey:@"SG"]; 204 | [worldMap setObject:[NSArray arrayWithObjects:@"{4995,2294};{4999,2270};{5023,2274};{5067,2258};{5071,2270};{5051,2286};{5043,2306};{4999,2306}", nil] forKey:@"SI"]; 205 | [worldMap setObject:[NSArray arrayWithObjects:@"{5135,2170};{5231,2186};{5223,2210};{5179,2206};{5135,2222};{5135,2226};{5103,2230};{5087,2222};{5087,2198}", nil] forKey:@"SK"]; 206 | [worldMap setObject:[NSArray arrayWithObjects:@"{4339,3406};{4371,3362};{4359,3366};{4363,3358};{4347,3326};{4315,3326};{4291,3350};{4295,3370};{4311,3390}", nil] forKey:@"SL"]; 207 | [worldMap setObject:[NSArray arrayWithObjects:@"{4199,3262};{4239,3254};{4279,3254};{4339,3258};{4319,3202};{4263,3146};{4207,3158};{4203,3174};{4183,3198};{4203,3230};{4247,3222};{4279,3234};{4267,3238};{4243,3230};{4199,3242}", nil] forKey:@"SN"]; 208 | [worldMap setObject:[NSArray arrayWithObjects:@"{5739,3482};{5795,3458};{5823,3458};{5899,3378};{5871,3378};{5791,3346};{5759,3306};{5767,3298};{5775,3286};{5803,3314};{5819,3314};{5979,3274};{5987,3310};{5927,3418};{5899,3470};{5847,3526};{5779,3574};{5731,3630};{5715,3610};{5715,3514}", nil] forKey:@"SO"]; 209 | [worldMap setObject:[NSArray arrayWithObjects:@"{3139,3434};{3115,3478};{3155,3538};{3207,3526};{3223,3494};{3207,3458};{3223,3434}", nil] forKey:@"SR"]; 210 | [worldMap setObject:[NSArray arrayWithObjects:@"{2291,3206};{2335,3222};{2331,3238};{2271,3222}", nil] forKey:@"SV"]; 211 | [worldMap setObject:[NSArray arrayWithObjects:@"{5583,2602};{5595,2602};{5603,2578};{5659,2578};{5755,2566};{5735,2586};{5727,2586};{5715,2650};{5659,2678};{5607,2710};{5575,2698};{5575,2682};{5599,2654};{5591,2642};{5583,2642}", nil] forKey:@"SY"]; 212 | [worldMap setObject:[NSArray arrayWithObjects:@"{5479,4286};{5463,4278};{5447,4298};{5459,4322};{5479,4322};{5483,4310}", nil] forKey:@"SZ"]; 213 | [worldMap setObject:[NSArray arrayWithObjects:@"{5035,2974};{5059,2962};{5271,3070};{5271,3170};{5247,3170};{5215,3246};{5243,3298};{5127,3374};{5047,3386};{5007,3330};{5015,3322};{5047,3322};{5035,3294};{5039,3270};{5019,3242};{5011,3242};{4995,3226};{4995,3206};{5047,3138};{5059,3046}", nil] forKey:@"TD"]; 214 | [worldMap setObject:[NSArray arrayWithObjects:@"{6451,4978};{6471,4994};{6491,4990};{6483,5014};{6447,5010}", nil] forKey:@"TF"]; 215 | [worldMap setObject:[NSArray arrayWithObjects:@"{4687,3422};{4679,3326};{4659,3314};{4663,3298};{4643,3294};{4635,3306};{4651,3318};{4655,3410};{4671,3426}", nil] forKey:@"TG"]; 216 | [worldMap setObject:[NSArray arrayWithObjects:@"{7339,3274};{7327,3234};{7351,3210};{7403,3210};{7411,3206};{7411,3190};{7415,3174};{7391,3150};{7391,3130};{7355,3098};{7335,3118};{7323,3106};{7295,3126};{7291,3122};{7299,3070};{7279,3070};{7279,3054};{7267,3046};{7215,3066};{7199,3098};{7207,3118};{7235,3154};{7227,3166};{7227,3182};{7219,3186};{7227,3210};{7247,3226};{7243,3242};{7255,3278};{7227,3326};{7223,3386};{7231,3370};{7271,3422};{7275,3418};{7295,3426};{7295,3442};{7315,3438};{7323,3426};{7303,3406};{7291,3410};{7279,3398};{7263,3346};{7247,3346};{7243,3322};{7267,3270};{7267,3234};{7291,3234};{7287,3254};{7319,3258}", nil] forKey:@"TH"]; 217 | [worldMap setObject:[NSArray arrayWithObjects:@"{6459,2566};{6419,2566};{6435,2538};{6431,2514};{6407,2502};{6415,2490};{6439,2490};{6491,2446};{6499,2454};{6487,2466};{6503,2474};{6495,2482};{6479,2474};{6459,2486};{6463,2494};{6499,2498};{6575,2494};{6583,2522};{6603,2526};{6607,2566};{6591,2558};{6555,2562};{6523,2582};{6515,2566};{6519,2542};{6511,2542};{6511,2530};{6499,2526}", nil] forKey:@"TJ"]; 218 | [worldMap setObject:[NSArray arrayWithObjects:@"{7919,3826};{7927,3818};{7979,3810};{7983,3814};{7923,3838}", nil] forKey:@"TL"]; 219 | [worldMap setObject:[NSArray arrayWithObjects:@"{6055,2562};{6123,2530};{6247,2582};{6251,2614};{6283,2626};{6367,2554};{6387,2562};{6387,2542};{6279,2478};{6255,2438};{6219,2434};{6215,2406};{6171,2394};{6135,2422};{6139,2438};{6111,2438};{6099,2442};{6067,2406};{6035,2410};{6019,2426};{6027,2438};{6027,2422};{6035,2414};{6055,2414};{6075,2446};{6051,2462};{6035,2454};{6027,2442};{6023,2478};{6043,2482};{6043,2494};{6035,2498};{6047,2502}", nil] forKey:@"TM"]; 220 | [worldMap setObject:[NSArray arrayWithObjects:@"{4943,2686};{4943,2706};{4903,2734};{4911,2754};{4887,2770};{4879,2718};{4835,2666};{4859,2626};{4863,2574};{4899,2562};{4915,2578};{4931,2570};{4915,2598};{4931,2626};{4903,2658}", nil] forKey:@"TN"]; 221 | [worldMap setObject:[NSArray arrayWithObjects:@"{9489.33,4149.67};{9498.33,4151.33};{9493.5,4155.17}", nil] forKey:@"TO"]; 222 | [worldMap setObject:[NSArray arrayWithObjects:@"{5375,2418};{5331,2426};{5327,2458};{5343,2462};{5367,2446};{5403,2450};{5411,2458};{5367,2470};{5355,2466};{5339,2466};{5327,2482};{5327,2494};{5343,2502};{5347,2530};{5335,2530};{5367,2562};{5363,2570};{5423,2598};{5439,2590};{5443,2574};{5483,2586};{5499,2602};{5527,2598};{5555,2578};{5571,2586};{5583,2574};{5591,2582};{5579,2590};{5583,2602};{5595,2602};{5603,2578};{5659,2578};{5755,2566};{5815,2566};{5799,2498};{5811,2486};{5787,2478};{5783,2442};{5759,2430};{5731,2430};{5695,2450};{5647,2450};{5595,2442};{5559,2414};{5515,2418};{5463,2438};{5459,2446};{5403,2442};{5379,2430}", nil] forKey:@"TR"]; 223 | [worldMap setObject:[NSArray arrayWithObjects:@"{3016.38,3320.62};{3025,3316.62};{3021,3304.75};{3039,3301.88};{3036.25,3321}", @"{3041.88,3292.5};{3048.88,3288.12};{3049.62,3291.38}", nil] forKey:@"TT"]; 224 | [worldMap setObject:[NSArray arrayWithObjects:@"{7819,2918};{7843,2918};{7815,3006};{7791,2978};{7795,2954}", nil] forKey:@"TW"]; 225 | [worldMap setObject:[NSArray arrayWithObjects:@"{5671,3710};{5627,3678};{5631,3670};{5534.67,3613.83};{5515.17,3637.67};{5527,3646};{5519,3654};{5475,3654};{5475,3614};{5439,3614};{5447,3650};{5451,3674};{5419,3706};{5427,3742};{5423,3754};{5435,3762};{5459,3814};{5503,3830};{5535,3842};{5559,3894};{5623,3894};{5703,3866};{5683,3850};{5671,3806};{5679,3770};{5659,3746}", nil] forKey:@"TZ"]; 226 | [worldMap setObject:[NSArray arrayWithObjects:@"{5475,2082};{5455,2082};{5443,2106};{5303,2086};{5259,2098};{5271,2138};{5235,2170};{5239,2186};{5231,2186};{5223,2210};{5239,2222};{5295,2234};{5343,2210};{5363,2206};{5403,2222};{5427,2270};{5439,2282};{5447,2270};{5523,2290};{5495,2306};{5519,2314};{5519,2334};{5535,2338};{5595,2318};{5599,2306};{5571,2310};{5547,2294};{5567,2274};{5643,2250};{5651,2230};{5683,2226};{5691,2170};{5623,2138};{5603,2146};{5575,2142};{5559,2110};{5539,2110};{5527,2070}", nil] forKey:@"UA"]; 227 | [worldMap setObject:[NSArray arrayWithObjects:@"{5451,3494};{5519,3490};{5531,3478};{5563,3534};{5531,3582};{5515,3578};{5479,3590};{5475,3614};{5439,3614};{5427,3626};{5419,3622};{5419,3586};{5463,3530};{5447,3522}", nil] forKey:@"UG"]; 228 | [worldMap setObject:[NSArray arrayWithObjects:@"{1563,2702};{1627,2702};{1723,2738};{1799,2738};{1799,2726};{1843,2726};{1931,2806};{1951,2778};{1975,2782};{2039,2878};{2087,2890};{2079,2850};{2159,2786};{2235,2786};{2259,2806};{2307,2766};{2379,2766};{2403,2786};{2431,2770};{2471,2810};{2463,2834};{2507,2910};{2531,2910};{2539,2870};{2499,2758};{2511,2722};{2655,2606};{2635,2542};{2647,2554};{2695,2486};{2699,2462};{2791,2422};{2779,2390};{2795,2358};{2883,2322};{2859,2294};{2859,2250};{2823,2238};{2759,2318};{2671,2318};{2643,2338};{2635,2366};{2623,2374};{2563,2374};{2567,2386};{2559,2398};{2491,2430};{2459,2430};{2451,2418};{2475,2382};{2463,2350};{2439,2362};{2451,2314};{2415,2294};{2375,2330};{2367,2366};{2375,2386};{2359,2422};{2343,2426};{2331,2378};{2363,2294};{2399,2282};{2411,2286};{2443,2286};{2419,2270};{2407,2262};{2351,2274};{2319,2250};{2323,2238};{2295,2254};{2223,2262};{2283,2218};{2143,2186};{1415,2186};{1415,2214};{1363,2210};{1383,2282};{1383,2334};{1367,2390};{1383,2438};{1371,2466};{1475,2642};{1539,2666}", @"{1215,1986};{1227,1938};{1079,1798};{1031,1830};{935,1770};{935,1374};{523,1298};{275,1410};{267,1434};{411,1522};{391,1538};{335,1534};{335,1510};{227,1554};{279,1598};{363,1598};{407,1586};{415,1634};{351,1666};{323,1654};{279,1718};{307,1750};{291,1766};{347,1798};{375,1782};{391,1806};{387,1838};{431,1826};{463,1846};{515,1830};{499,1882};{307,1990};{319,1998};{455,1942};{615,1830};{591,1818};{667,1742};{651,1818};{755,1786};{759,1754};{787,1750};{863,1786};{955,1798};{963,1794};{971,1806};{1047,1854};{1103,1930};{1115,1914};{1155,1986};{1179,1978}", nil] forKey:@"US"]; 229 | [worldMap setObject:[NSArray arrayWithObjects:@"{3235,4510};{3231,4494};{3243,4478};{3147,4402};{3127,4406};{3103,4514};{3163,4542};{3219,4538}", nil] forKey:@"TW"]; 230 | [worldMap setObject:[NSArray arrayWithObjects:@"{6419,2566};{6387,2562};{6387,2542};{6279,2478};{6255,2438};{6219,2434};{6215,2406};{6171,2394};{6135,2422};{6139,2438};{6111,2438};{6111,2322};{6179,2302};{6243,2342};{6267,2370};{6343,2362};{6367,2390};{6375,2386};{6375,2418};{6387,2418};{6395,2442};{6419,2442};{6439,2458};{6451,2438};{6503,2410};{6511,2414};{6487,2430};{6515,2442};{6523,2434};{6559,2454};{6523,2478};{6503,2474};{6487,2466};{6499,2454};{6491,2446};{6439,2490};{6415,2490};{6407,2502};{6431,2514};{6435,2538}", nil] forKey:@"UZ"]; 231 | [worldMap setObject:[NSArray arrayWithObjects:@"{3031.88,3234.62};{3034.5,3236.38};{3032.38,3242.25};{3029.5,3238.75}", nil] forKey:@"VC"]; 232 | [worldMap setObject:[NSArray arrayWithObjects:@"{2751,3282};{2711,3346};{2759,3402};{2799,3402};{2815,3426};{2867,3422};{2855,3470};{2871,3498};{2859,3510};{2875,3526};{2883,3558};{2907,3570};{2975,3526};{2959,3522};{2939,3478};{2987,3494};{3047,3458};{3047,3450};{3027,3430};{3055,3402};{3043,3390};{3071,3366};{3043,3358};{3039,3338};{2991,3306};{2935,3322};{2903,3306};{2855,3310};{2819,3282};{2763,3302};{2775,3338};{2759,3346};{2743,3330};{2759,3306}", nil] forKey:@"VE"]; 233 | [worldMap setObject:[NSArray arrayWithObjects:@"{7475,3018};{7443,3002};{7443,2982};{7407,2966};{7347,2990};{7331,2982};{7323,2990};{7343,3010};{7343,3022};{7363,3038};{7375,3030};{7399,3054};{7371,3074};{7403,3094};{7399,3098};{7463,3166};{7455,3170};{7467,3186};{7463,3202};{7463,3262};{7419,3282};{7427,3306};{7415,3298};{7383,3314};{7399,3326};{7391,3366};{7503,3290};{7515,3250};{7499,3186};{7411,3086};{7423,3058}", nil] forKey:@"VN"]; 234 | [worldMap setObject:[NSArray arrayWithObjects:@"{9015.5,3976};{9019.5,4002.5};{9032.5,4000}", @"{9031.5,4008.5};{9038,4026.5};{9047,4022.5}", nil] forKey:@"VU"]; 235 | [worldMap setObject:[NSArray arrayWithObjects:@"{9556.33,3944.17};{9568.17,3942.33};{9571.17,3951.83};{9563.17,3951.83}", @"{9575.33,3953.83};{9582.17,3952.17};{9590.83,3959.33}", nil] forKey:@"WA"]; 236 | [worldMap setObject:[NSArray arrayWithObjects:@"{9415.75,3964};{9420.25,3967.5};{9417,3967.5}", nil] forKey:@"WF"]; 237 | [worldMap setObject:[NSArray arrayWithObjects:@"{5763,3154};{5775,3146};{5775,3130};{5783,3126};{5867,3134};{5879,3142};{5903,3110};{6003,3086};{6035,3150};{6011,3162};{6011,3174};{5787,3258}", nil] forKey:@"YE"]; 238 | [worldMap setObject:[NSArray arrayWithObjects:@"{5503,4310};{5483,4310};{5479,4322};{5459,4322};{5447,4298};{5463,4278};{5479,4286};{5463,4186};{5411,4178};{5347,4222};{5311,4278};{5247,4266};{5211,4310};{5183,4310};{5179,4298};{5187,4290};{5163,4254};{5163,4354};{5147,4370};{5099,4362};{5087,4342};{5071,4362};{5123,4474};{5111,4482};{5163,4542};{5215,4526};{5315,4518};{5423,4442};{5491,4358}", nil] forKey:@"ZA"]; 239 | [worldMap setObject:[NSArray arrayWithObjects:@"{5255,4058};{5215,4014};{5215,3930};{5271,3930};{5271,3878};{5279,3878};{5283,3890};{5303,3886};{5307,3894};{5347,3906};{5351,3894};{5407,3942};{5423,3942};{5423,3910};{5403,3914};{5383,3890};{5391,3870};{5387,3834};{5399,3814};{5443,3802};{5439,3810};{5455,3818};{5459,3814};{5503,3830};{5523,3866};{5511,3958};{5435,3986};{5439,4002};{5399,4010};{5395,4026};{5351,4062};{5299,4058};{5279,4050}", nil] forKey:@"ZM"]; 240 | [worldMap setObject:[NSArray arrayWithObjects:@"{5463,4186};{5503,4126};{5503,4030};{5439,4010};{5439,4002};{5399,4010};{5395,4026};{5351,4062};{5299,4058};{5375,4162};{5411,4178}", nil] forKey:@"ZW"]; 241 | 242 | 243 | formatter = [[NSNumberFormatter alloc] init]; 244 | 245 | [formatter setFormatterBehavior:NSNumberFormatterBehavior10_4]; 246 | [formatter setNumberStyle:NSNumberFormatterDecimalStyle]; 247 | 248 | values = [[NSMutableDictionary alloc] init]; 249 | 250 | backgroundColor = [[NSColor colorWithDeviceRed:234.0/255.0 green:247.0/255.0 blue:254.0/255.0 alpha:1.0] retain]; 251 | color = [[NSColor colorWithDeviceRed:38.0/255.0 green:113.0/255.0 blue:20.0/255.0 alpha:1.0] retain]; 252 | textColor = [[NSColor colorWithDeviceRed:0.0/255.0 green:0.0/255.0 blue:0.0/255.0 alpha:1.0] retain]; 253 | } 254 | 255 | - (void)draw { 256 | [values removeAllObjects]; 257 | 258 | for (id key in worldMap) { 259 | NSNumber *value = [dataSource valueForCountry:key]; 260 | [values setObject:value forKey:key]; 261 | } 262 | 263 | [self setNeedsDisplay:YES]; 264 | } 265 | 266 | - (void)drawRect:(NSRect)rect { 267 | [backgroundColor set]; 268 | 269 | NSRectFill(rect); 270 | 271 | float ratioX = (rect.size.width - OFFSET * 2) / 9635; 272 | float ratioY = rect.size.height / 8000; 273 | 274 | //float sum = 0.0; 275 | float max = 0.0; 276 | 277 | for (id key in values) { 278 | //sum = sum + [[values objectForKey:key] floatValue]; 279 | 280 | if ([[values objectForKey:key] floatValue] > max) { 281 | max = [[values objectForKey:key] floatValue]; 282 | } 283 | 284 | } 285 | 286 | float percent = max / 100; 287 | 288 | NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; 289 | [paragraphStyle setAlignment:NSLeftTextAlignment]; 290 | 291 | NSFont *font = [NSFont boldSystemFontOfSize:11]; 292 | NSDictionary *attsDict = [NSDictionary dictionaryWithObjectsAndKeys:textColor, NSForegroundColorAttributeName, font, NSFontAttributeName, [NSNumber numberWithInt:NSNoUnderlineStyle], NSUnderlineStyleAttributeName, paragraphStyle, NSParagraphStyleAttributeName, nil]; 293 | 294 | NSGradient *gradient = [[NSGradient alloc] initWithStartingColor:[self colorForValue:0.0] endingColor:[self colorForValue:100.0]]; 295 | [gradient drawInRect:NSMakeRect(30, 10, 100, 20) angle:0]; 296 | 297 | [[formatter stringFromNumber:[NSNumber numberWithFloat:0.0]] drawInRect:NSMakeRect(10, 7, 10, 20) withAttributes:attsDict]; 298 | [[formatter stringFromNumber:[NSNumber numberWithFloat:max]] drawInRect:NSMakeRect(140, 7, 100, 20) withAttributes:attsDict]; 299 | 300 | NSPoint startPoint; 301 | NSPoint endPoint; 302 | 303 | for (id key in worldMap) { 304 | NSArray *parts = [worldMap objectForKey:key]; 305 | 306 | for (int i = 0; i < [parts count]; i++) { 307 | NSArray *coords = [[parts objectAtIndex:i] componentsSeparatedByString:@";"]; 308 | 309 | NSBezierPath *path = [NSBezierPath bezierPath]; 310 | [path setLineWidth:1]; 311 | 312 | startPoint = NSPointFromString([coords objectAtIndex:0]); 313 | startPoint.x = startPoint.x * ratioX + OFFSET; 314 | startPoint.y = startPoint.y * ratioY; 315 | startPoint.y = rect.size.height - startPoint.y; 316 | 317 | [path moveToPoint:startPoint]; 318 | 319 | for (int j = 1; j < [coords count] - 1; j++) { 320 | startPoint = NSPointFromString([coords objectAtIndex:j]); 321 | 322 | startPoint.x = startPoint.x * ratioX + OFFSET; 323 | startPoint.y = startPoint.y * ratioY; 324 | startPoint.y = rect.size.height - startPoint.y; 325 | 326 | endPoint = NSPointFromString([coords objectAtIndex:j + 1]); 327 | endPoint.x = endPoint.x * ratioX + OFFSET; 328 | endPoint.y = endPoint.y * ratioY; 329 | endPoint.y = rect.size.height - endPoint.y; 330 | 331 | [path lineToPoint:endPoint]; 332 | } 333 | 334 | [path closePath]; 335 | 336 | [[NSColor grayColor] set]; 337 | [path stroke]; 338 | 339 | [[self colorForValue:[[values objectForKey:key] intValue] / percent] set]; 340 | [path fill]; 341 | } 342 | } 343 | 344 | [paragraphStyle release]; 345 | [gradient release]; 346 | } 347 | 348 | - (NSColor *)colorForValue:(float)value { 349 | float hue = [color hueComponent]; 350 | float saturation = (value / 70.0); 351 | float brightness = 1.0 - (value / 50.0); 352 | float alfa = 1.0; 353 | 354 | if (saturation < 0.1) { 355 | saturation = 0.1; 356 | } 357 | 358 | if (brightness < 0.2) { 359 | brightness = 0.2; 360 | } 361 | 362 | return [NSColor colorWithCalibratedHue:hue saturation:saturation brightness:brightness alpha:alfa]; 363 | } 364 | 365 | - (void)dealloc { 366 | [dataSource release]; 367 | [worldMap release]; 368 | [values release]; 369 | [formatter release]; 370 | [backgroundColor release]; 371 | [color release]; 372 | [super dealloc]; 373 | } 374 | 375 | @end 376 | -------------------------------------------------------------------------------- /README.mdown: -------------------------------------------------------------------------------- 1 | Using PTMapView 2 | =================================== 3 | 4 | Add files PTMapView.h and PTMapView.m into your project 5 | 6 | Put NSView on you form 7 | 8 | Set NSView class to PTMapView 9 | 10 | Set outlet in controller 11 | IBOutlet PTMapView *mapView 12 | 13 | Import class 14 | import "PTMapView.h" 15 | 16 | Prepare view 17 | mapView.dataSource = self; 18 | mapView.delegate = self; 19 | 20 | mapView.backgroundColor = [NSColor whiteColor]; 21 | mapView.textColor = [NSColor blackColor]; 22 | mapView.color = [NSColor orangeColor]; 23 | 24 | Add method for data source protocol 25 | - (NSNumber *)valueForCountry:(NSString *)code { 26 | return [NSNumber numberWithInt:random() % 100]; 27 | } 28 | 29 | code - country code in ISA format (uppercase) 30 | 31 | Draw map 32 | [mapView draw]; 33 | 34 | Enjoy! 35 | 36 | ![PTMapView](http://farm3.static.flickr.com/2741/4370696428_c41fe77e4c.jpg) --------------------------------------------------------------------------------