Blazor Binding Multiple Data Sources
In the Ignite UI for Blazor map, you can add multiple geographic series objects to overlay custom data sources with geo-spacial data. For example, IgbGeographicSymbolSeries
for plotting geographic locations of airports, the IgbGeographicPolylineSeries
for plotting flights between airports, and 2nd IgbGeographicPolylineSeries
for plotting gridlines of major geographic coordinates.
Blazor Binding Multiple Data Sources Example
using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using IgniteUI.Blazor.Controls; // for registering Ignite UI modules
namespace Infragistics.Samples
{
public class Program
{
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
// registering Ignite UI modules
builder.Services.AddIgniteUIBlazor(
typeof(IgbGeographicMapModule),
typeof(IgbDataChartInteractivityModule)
);
await builder.Build().RunAsync();
}
}
}
cs// NOTE this file contains multiple data sources:
// Data Source #1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Infragistics.Samples
{
public class GeoLocation
{
public double Lat { get; set; }
public double Lon { get; set; }
}
}
// Data Source #2
using System;
namespace Infragistics.Samples
{
public class WorldCity
{
public double Lat { get; set; }
public double Lon { get; set; }
public double Pop { get; set; }
public string Country { get; set; }
public string Name { get; set; }
public bool Cap { get; set; }
}
}
// Data Source #3
using IgniteUI.Blazor.Controls;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
namespace Infragistics.Samples
{
public static class WorldConnections
{
public static List<FlightInfo> Flights { get; set; }
public static List<WorldCity> Airports { get; set; }
public static Dictionary<string, string> FlightsLookup = new Dictionary<string, string>();
public static Dictionary<string, WorldCity> AirportsLookup = new Dictionary<string, WorldCity>();
static WorldConnections()
{
Init();
}
public static List<FlightInfo> GetFlights()
{;
return Flights;
}
public static List<WorldCity> GetAirports()
{
return Airports;
}
public static int ComparePopulation(WorldCity a, WorldCity b)
{
if(a.Pop < b.Pop)
{
return 1;
}
if(a.Pop > b.Pop)
{
return -1;
}
return 0;
}
static Random rand = new Random();
public static void Init()
{
Flights = new List<FlightInfo>();
Airports = new List<WorldCity>();
var fullCityList = WorldLocations.GetAll();
var cities = new List<WorldCity>();
var countries = new Dictionary<string, int>();
foreach (var city in fullCityList)
{
if (countries.ContainsKey(city.Country))
{
if (countries[city.Country] < 2)
{
cities.Add(city);
countries[city.Country]++;
}
}
else
{
cities.Add(city);
countries.Add(city.Country, 1);
}
}
fullCityList.Sort(new Comparison<WorldCity>(ComparePopulation));
int count = cities.Count;
int flightsCount = 0;
double minDistance = 200;
double maxDistance = 10000;
double flightsLimit = 250;
for (int i = 0; i < count; i++)
{
WorldCity origin = cities[i];
int connectionsCount = 0;
double connectionsMax = Math.Min(20, Math.Round(origin.Pop * 4));
for (int j = 0; j < count; j++)
{
WorldCity dest = cities[j];
GeoLocation originGeo = new GeoLocation() { Lat = origin.Lat, Lon = origin.Lon };
GeoLocation destGeo = new GeoLocation() { Lat = dest.Lat, Lon = dest.Lon };
if(origin.Name != dest.Name)
{
string route = origin.Name + "-" + dest.Name;
bool routeIsValid = !FlightsLookup.ContainsKey(route);
double distance = Math.Round(WorldUtils.CalcDistance(originGeo, destGeo));
bool distanceIsValid = distance > minDistance && distance < maxDistance;
double pass = Math.Round(rand.NextDouble() * 200) + 150;
double time = distance / 800;
bool trafficIsValid = origin.Pop > 3 && dest.Pop > 1.0;
if(routeIsValid && distanceIsValid && trafficIsValid)
{
FlightsLookup.Add(route, route);
List<List<Point>> paths = WorldUtils.CalcPaths(originGeo, destGeo);
flightsCount++;
connectionsCount++;
string id = origin.Name.Substring(0, 3).ToUpper() + "-" + flightsCount;
FlightInfo flight = new FlightInfo() { ID = id, Origin = origin, Dest = dest, Time = time, Passengers = pass, Distance = distance, Points = paths };
Flights.Add(flight);
}
if (connectionsCount > connectionsMax)
{
break;
}
if (flightsCount > flightsLimit)
{
break;
}
}
}
}
foreach(FlightInfo flight in Flights)
{
AddAirport(flight.Origin);
AddAirport(flight.Dest);
}
Airports = AirportsLookup.Values.ToList();
}
public static void AddAirport(WorldCity city)
{
if (!AirportsLookup.ContainsKey(city.Name))
{
AirportsLookup.Add(city.Name, city);
}
}
public static List<CoordinateLine> GetGridlines()
{
List<CoordinateLine> gridlines = new List<CoordinateLine>();
List<List<Point>> latLines = new List<List<Point>>();
List<List<Point>> lonLines = new List<List<Point>>();
for (int lon = -180; lon <= 180; lon += 30)
{
List<Point> points = new List<Point>();
points.Add(new Point(lon, -90));
points.Add(new Point(lon, 90));
lonLines.Add(points);
}
for (int lat = -90; lat <= 90; lat += 30)
{
List<Point> points = new List<Point>();
points.Add(new Point(-180, lat));
points.Add(new Point(180, lat));
latLines.Add(points);
}
CoordinateLine lines1 = new CoordinateLine() { Points = lonLines };
CoordinateLine lines2 = new CoordinateLine() { Points = latLines };
gridlines.Add(lines1);
gridlines.Add(lines2);
return gridlines;
}
}
public class FlightInfo
{
public string ID { get; set; }
public WorldCity Origin { get; set; }
public WorldCity Dest { get; set; }
public double Time { get; set; }
public double Passengers { get; set; }
public double Distance { get; set; }
public List<List<Point>> Points { get; set; }
public string Color { get; set; }
}
public class CoordinateLine
{
public List<List<Point>> Points { get; set; }
}
}
// Data Source #4
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Infragistics.Samples
{
public static class WorldLocations
{
public static List<WorldCity> GetAll()
{
return WorldLocations.Init();
}
public static List<WorldCity> GetCities()
{
List<WorldCity> all = WorldLocations.Init();
return all.Where(c => c.Cap == false).ToList();
}
public static List<WorldCity> GetCapitals()
{
List<WorldCity> all = WorldLocations.Init();
return all.Where(c => c.Cap == true).ToList();
}
public static List<WorldCity> Init()
{
List<WorldCity> cities = new List<WorldCity>() {
// console.log("WorldLocations init");
new WorldCity { Cap = false, Pop = 0.468, Lat = 68.9635467529297, Lon = 33.0860404968262, Country = "Russia", Name = "Murmansk" },
new WorldCity { Cap = false, Pop = 0.416, Lat = 64.5206680297852, Lon = 40.6461601257324, Country = "Russia", Name = "Arkhangelsk" },
new WorldCity { Cap = false, Pop = 5.825, Lat = 59.9518890380859, Lon = 30.4533271789551, Country = "Russia", Name = "Saint Petersburg" },
new WorldCity { Cap = false, Pop = 0.152, Lat = 59.5709991455078, Lon = 150.780014038086, Country = "Russia", Name = "Magadan" },
new WorldCity { Cap = false, Pop = 1.160, Lat = 58.0002365112305, Lon = 56.2324638366699, Country = "Russia", Name = "Perm'" },
new WorldCity { Cap = false, Pop = 1.620, Lat = 56.8465423583984, Lon = 60.6101303100586, Country = "Russia", Name = "Yekaterinburg" },
new WorldCity { Cap = false, Pop = 2.025, Lat = 56.2896766662598, Lon = 43.9406700134277, Country = "Russia", Name = "Nizhniy Novgorod" },
new WorldCity { Cap = false, Pop = 1.800, Lat = 55.8628082275391, Lon = -4.26994752883911, Country = "UK", Name = "Glasgow" },
new WorldCity { Cap = false, Pop = 1.140, Lat = 55.7330055236816, Lon = 49.1454658508301, Country = "Russia", Name = "Kazan'" },
new WorldCity { Cap = false, Pop = 1.325, Lat = 55.1450004577637, Lon = 61.3926124572754, Country = "Russia", Name = "Chelyabinsk" },
new WorldCity { Cap = false, Pop = 1.175, Lat = 55.063304901123, Lon = 73.2502899169922, Country = "Russia", Name = "Omsk" },
new WorldCity { Cap = false, Pop = 1.600, Lat = 55.0321006774902, Lon = 82.9428482055664, Country = "Russia", Name = "Novosibirsk" },
new WorldCity { Cap = false, Pop = 1.100, Lat = 54.8217353820801, Lon = 56.0961265563965, Country = "Russia", Name = "Ufa" },
new WorldCity { Cap = true, Pop = 0.582, Lat = 54.6885681152344, Lon = 25.2759666442871, Country = "Lithuania", Name = "Vilnius" },
new WorldCity { Cap = false, Pop = 0.685, Lat = 54.5869255065918, Lon = -5.90966033935547, Country = "UK", Name = "Belfast" },
new WorldCity { Cap = false, Pop = 0.909, Lat = 54.3662033081055, Lon = 18.624942779541, Country = "Poland", Name = "Gdansk" },
new WorldCity { Cap = true, Pop = 1.650, Lat = 53.8999366760254, Lon = 27.5755672454834, Country = "Byelarus", Name = "Minsk" },
new WorldCity { Cap = false, Pop = 1.540, Lat = 53.8087120056152, Lon = -1.49752748012543, Country = "UK", Name = "Leeds" },
new WorldCity { Cap = false, Pop = 2.225, Lat = 53.5711212158203, Lon = 10.027606010437, Country = "Germany", Name = "Hamburg" },
new WorldCity { Cap = false, Pop = 2.775, Lat = 53.479663848877, Lon = -2.26177859306335, Country = "UK", Name = "Manchester" },
new WorldCity { Cap = false, Pop = 0.710, Lat = 53.3740425109863, Lon = -1.46298921108246, Country = "UK", Name = "Sheffield" },
new WorldCity { Cap = true, Pop = 1.140, Lat = 53.3415603637695, Lon = -6.25734663009644, Country = "Ireland", Name = "Dublin" },
new WorldCity { Cap = false, Pop = 1.505, Lat = 53.1385955810547, Lon = 50.0961799621582, Country = "Russia", Name = "Samara" },
new WorldCity { Cap = false, Pop = 0.800, Lat = 53.0801048278809, Lon = 8.85762596130371, Country = "Germany", Name = "Bremen" },
new WorldCity { Cap = true, Pop = 5.061, Lat = 52.5162734985352, Lon = 13.3275728225708, Country = "Germany", Name = "Berlin" },
new WorldCity { Cap = false, Pop = 2.675, Lat = 52.4927520751953, Lon = -1.86334776878357, Country = "UK", Name = "Birmingham" },
new WorldCity { Cap = true, Pop = 1.860, Lat = 52.3730430603027, Lon = 4.89483308792114, Country = "Netherlands", Name = "Amsterdam" },
new WorldCity { Cap = false, Pop = 0.626, Lat = 52.3174324035645, Lon = 104.247833251953, Country = "Russia", Name = "Irkutsk" },
new WorldCity { Cap = true, Pop = 2.323, Lat = 52.244945526123, Lon = 21.0118789672852, Country = "Poland", Name = "Warsaw" },
new WorldCity { Cap = false, Pop = 1.110, Lat = 51.925594329834, Lon = 4.48515224456787, Country = "Netherlands", Name = "Rotterdam" },
new WorldCity { Cap = false, Pop = 1.061, Lat = 51.7779083251953, Lon = 19.4764404296875, Country = "Poland", Name = "Lodz" },
new WorldCity { Cap = false, Pop = 0.568, Lat = 51.5138130187988, Lon = 7.46641826629639, Country = "Germany", Name = "Dortmund" },
new WorldCity { Cap = false, Pop = 0.515, Lat = 51.4893379211426, Lon = 6.77530431747437, Country = "Germany", Name = "Duisburg" },
new WorldCity { Cap = true, Pop = 11.100, Lat = 51.4879112243652, Lon = -0.177998125553131, Country = "UK", Name = "london" },
new WorldCity { Cap = false, Pop = 3.867, Lat = 51.3540420532227, Lon = 7.12243509292603, Country = "Germany", Name = "Essen" },
new WorldCity { Cap = false, Pop = 0.700, Lat = 51.3493309020996, Lon = 12.3980741500854, Country = "Germany", Name = "Leipzig" },
new WorldCity { Cap = false, Pop = 1.100, Lat = 51.207347869873, Lon = 4.42605447769165, Country = "Belgium", Name = "Antwerpen" },
new WorldCity { Cap = false, Pop = 0.640, Lat = 51.1218185424805, Lon = 17.0381278991699, Country = "Poland", Name = "Wroclaw" },
new WorldCity { Cap = false, Pop = 0.465, Lat = 51.0475540161133, Lon = 3.73629117012024, Country = "Belgium", Name = "Gent" },
new WorldCity { Cap = false, Pop = 0.670, Lat = 51.0456809997559, Lon = 13.7053575515747, Country = "Germany", Name = "Dresden" },
new WorldCity { Cap = false, Pop = 0.671, Lat = 51.0299987792969, Lon = -114.050003051758, Country = "Canada", Name = "Calgary" },
new WorldCity { Cap = false, Pop = 1.760, Lat = 50.9423446655273, Lon = 6.93487167358398, Country = "Germany", Name = "Koln" },
new WorldCity { Cap = true, Pop = 2.385, Lat = 50.8370475769043, Lon = 4.36761236190796, Country = "Belgium", Name = "Bruxelles" },
new WorldCity { Cap = false, Pop = 0.570, Lat = 50.7345581054688, Lon = 7.09981870651245, Country = "Germany", Name = "Bonn" },
new WorldCity { Cap = false, Pop = 1.020, Lat = 50.6320838928223, Lon = 3.06290125846863, Country = "France", Name = "Lille" },
new WorldCity { Cap = false, Pop = 0.750, Lat = 50.6225280761719, Lon = 5.56943559646606, Country = "Belgium", Name = "Liege" },
new WorldCity { Cap = true, Pop = 2.900, Lat = 50.4481582641602, Lon = 30.5021114349365, Country = "Ukraine", Name = "Kiev" },
new WorldCity { Cap = false, Pop = 1.855, Lat = 50.129997253418, Lon = 8.66816711425781, Country = "Germany", Name = "Frankfurt am Main" },
new WorldCity { Cap = true, Pop = 1.325, Lat = 50.1058959960938, Lon = 14.4565200805664, Country = "Czech Repub", Name = "Prague" },
new WorldCity { Cap = false, Pop = 0.828, Lat = 50.0622406005859, Lon = 19.9450569152832, Country = "Poland", Name = "Krakow" },
new WorldCity { Cap = false, Pop = 0.625, Lat = 49.9211692810059, Lon = -97.1244430541992, Country = "Canada", Name = "Winnipeg" },
new WorldCity { Cap = false, Pop = 0.614, Lat = 49.879207611084, Lon = 73.20263671875, Country = "Kazakhstan", Name = "Karaganda" },
new WorldCity { Cap = false, Pop = 0.790, Lat = 49.8373107910156, Lon = 24.0345211029053, Country = "Ukraine", Name = "Lvov" },
new WorldCity { Cap = false, Pop = 0.450, Lat = 49.2029800415039, Lon = 16.6162452697754, Country = "Czech Repub", Name = "Brno" },
new WorldCity { Cap = true, Pop = 9.775, Lat = 48.8815536499023, Lon = 2.43283271789551, Country = "France", Name = "Paris" },
new WorldCity { Cap = false, Pop = 1.360, Lat = 48.7102470397949, Lon = 44.4836311340332, Country = "Russia", Name = "Volgograd" },
new WorldCity { Cap = false, Pop = 0.400, Lat = 48.5834350585938, Lon = 7.76799440383911, Country = "France", Name = "Strasbourg" },
new WorldCity { Cap = false, Pop = 0.335, Lat = 48.2975959777832, Lon = 14.2939014434814, Country = "Austria", Name = "Linz" },
new WorldCity { Cap = true, Pop = 1.875, Lat = 48.2021179199219, Lon = 16.3209857940674, Country = "Austria", Name = "Vienna" },
new WorldCity { Cap = false, Pop = 1.955, Lat = 48.1409759521484, Lon = 11.5429534912109, Country = "Germany", Name = "Munchen" },
new WorldCity { Cap = false, Pop = 2.200, Lat = 48.0401458740234, Lon = 37.7370529174805, Country = "Ukraine", Name = "Donets'k" },
new WorldCity { Cap = true, Pop = 0.548, Lat = 47.928596496582, Lon = 106.912353515625, Country = "Mongolia", Name = "Ulaanbaatar" },
new WorldCity { Cap = true, Pop = 2.565, Lat = 47.5146255493164, Lon = 19.0942497253418, Country = "Hungary", Name = "Budapest" },
new WorldCity { Cap = false, Pop = 1.150, Lat = 47.3440055847168, Lon = 123.964965820313, Country = "China", Name = "Qiqihar" },
new WorldCity { Cap = false, Pop = 0.185, Lat = 47.2654609680176, Lon = 11.3499822616577, Country = "Austria", Name = "Innsbruck" },
new WorldCity { Cap = false, Pop = 1.165, Lat = 47.2320976257324, Lon = 39.6880378723145, Country = "Russia", Name = "Rostov-na-Donu" },
new WorldCity { Cap = false, Pop = 0.465, Lat = 47.2194328308105, Lon = -1.56156122684479, Country = "France", Name = "Nantes" },
new WorldCity { Cap = false, Pop = 0.325, Lat = 47.0649223327637, Lon = 15.4311008453369, Country = "Austria", Name = "Graz" },
new WorldCity { Cap = true, Pop = 0.299, Lat = 46.9482078552246, Lon = 7.44573640823364, Country = "Switzerland", Name = "Bern" },
new WorldCity { Cap = false, Pop = 0.603, Lat = 46.802074432373, Lon = -71.2449340820313, Country = "Canada", Name = "Quebec" },
new WorldCity { Cap = false, Pop = 1.185, Lat = 46.5722007751465, Lon = 30.6839370727539, Country = "Ukraine", Name = "Odessa" },
new WorldCity { Cap = false, Pop = 2.670, Lat = 45.7552185058594, Lon = 126.622634887695, Country = "China", Name = "Harbin" },
new WorldCity { Cap = false, Pop = 1.275, Lat = 45.7470817565918, Lon = 4.85540056228638, Country = "France", Name = "Lyon" },
new WorldCity { Cap = false, Pop = 2.921, Lat = 45.541015625, Lon = -73.6535339355469, Country = "Canada", Name = "Montreal" },
new WorldCity { Cap = false, Pop = 3.750, Lat = 45.4733810424805, Lon = 9.19046401977539, Country = "Italy", Name = "Milano" },
new WorldCity { Cap = false, Pop = 0.420, Lat = 45.4247741699219, Lon = 12.370719909668, Country = "Italy", Name = "Venezia" },
new WorldCity { Cap = true, Pop = 0.819, Lat = 45.3742179870605, Lon = -75.650749206543, Country = "Canada", Name = "Ottawa" },
new WorldCity { Cap = false, Pop = 1.550, Lat = 45.0748748779297, Lon = 7.66642618179321, Country = "Italy", Name = "Torino" },
new WorldCity { Cap = false, Pop = 2.012, Lat = 44.924186706543, Lon = -93.3077926635742, Country = "US", Name = "Minneapolis" },
new WorldCity { Cap = false, Pop = 0.640, Lat = 44.8414726257324, Lon = -0.599498748779297, Country = "France", Name = "Bordeaux" },
new WorldCity { Cap = true, Pop = 1.400, Lat = 44.7996826171875, Lon = 20.4125556945801, Country = "Serbia", Name = "Beograd" },
new WorldCity { Cap = true, Pop = 2.250, Lat = 44.4304847717285, Lon = 26.1229763031006, Country = "Romania", Name = "Bucuresti" },
new WorldCity { Cap = false, Pop = 1.740, Lat = 43.8813171386719, Lon = 125.312652587891, Country = "China", Name = "Changchung" },
new WorldCity { Cap = false, Pop = 1.170, Lat = 43.8502159118652, Lon = 126.56706237793, Country = "China", Name = "Jilin" },
new WorldCity { Cap = false, Pop = 1.040, Lat = 43.7826652526855, Lon = 87.5865173339844, Country = "China", Name = "Urumqi" },
new WorldCity { Cap = false, Pop = 0.640, Lat = 43.7815742492676, Lon = 11.207745552063, Country = "Italy", Name = "Firenze" },
new WorldCity { Cap = false, Pop = 3.427, Lat = 43.7207679748535, Lon = -79.4126358032227, Country = "Canada", Name = "Toronto" },
new WorldCity { Cap = false, Pop = 0.541, Lat = 43.5999603271484, Lon = 1.43798303604126, Country = "France", Name = "Toulouse" },
new WorldCity { Cap = false, Pop = 0.985, Lat = 43.2821578979492, Lon = -2.97378325462341, Country = "Spain", Name = "Bilbao" },
new WorldCity { Cap = true, Pop = 1.190, Lat = 43.2550621032715, Lon = 76.9126281738281, Country = "Kazakhstan", Name = "Almaty" },
new WorldCity { Cap = false, Pop = 0.816, Lat = 43.2104644775391, Lon = -77.635612487793, Country = "US", Name = "Rochester" },
new WorldCity { Cap = false, Pop = 1.375, Lat = 43.0679473876953, Lon = -87.9907379150391, Country = "US", Name = "Milwaukee" },
new WorldCity { Cap = false, Pop = 1.900, Lat = 43.0552520751953, Lon = 141.345474243164, Country = "Japan", Name = "Sapporo" },
new WorldCity { Cap = false, Pop = 1.483, Lat = 42.8986625671387, Lon = -78.8484344482422, Country = "US", Name = "Buffalo" },
new WorldCity { Cap = true, Pop = 1.205, Lat = 42.7072639465332, Lon = 23.3318710327148, Country = "Bulgaria", Name = "Sofia" },
new WorldCity { Cap = false, Pop = 4.692, Lat = 42.3943138122559, Lon = -83.0789260864258, Country = "US", Name = "Detroit" },
new WorldCity { Cap = false, Pop = 3.972, Lat = 42.3752975463867, Lon = -71.1025848388672, Country = "US", Name = "Boston" },
new WorldCity { Cap = false, Pop = 1.270, Lat = 41.8591575622559, Lon = 123.905570983887, Country = "China", Name = "Fushun" },
new WorldCity { Cap = false, Pop = 7.717, Lat = 41.826545715332, Lon = -87.6413040161133, Country = "US", Name = "Chicago" },
new WorldCity { Cap = false, Pop = 3.840, Lat = 41.8021621704102, Lon = 123.383056640625, Country = "China", Name = "Shenyang" },
new WorldCity { Cap = true, Pop = 1.460, Lat = 41.721809387207, Lon = 44.7831268310547, Country = "Georgia", Name = "Tbilisi" },
new WorldCity { Cap = false, Pop = 0.575, Lat = 41.6512641906738, Lon = -0.878205060958862, Country = "Spain", Name = "Zaragoza" },
new WorldCity { Cap = false, Pop = 2.218, Lat = 41.3907165527344, Lon = -81.7275085449219, Country = "US", Name = "Cleveland" },
new WorldCity { Cap = true, Pop = 0.211, Lat = 41.3316535949707, Lon = 19.8318042755127, Country = "Albania", Name = "Tirane" },
new WorldCity { Cap = false, Pop = 1.300, Lat = 41.1152458190918, Lon = 122.977012634277, Country = "China", Name = "Anshan" },
new WorldCity { Cap = false, Pop = 5.750, Lat = 41.0659561157227, Lon = 29.0060691833496, Country = "Turkey", Name = "Istanbul" },
new WorldCity { Cap = false, Pop = 0.682, Lat = 40.693920135498, Lon = -111.89217376709, Country = "US", Name = "Salt Lake City" },
new WorldCity { Cap = false, Pop = 2.219, Lat = 40.4972038269043, Lon = -79.9970855712891, Country = "US", Name = "Pittsburgh" },
new WorldCity { Cap = true, Pop = 4.650, Lat = 40.4422187805176, Lon = -3.69096946716309, Country = "Spain", Name = "Madrid" },
new WorldCity { Cap = true, Pop = 2.020, Lat = 40.3242988586426, Lon = 49.8162384033203, Country = "Azerbaijan", Name = "Baku" },
new WorldCity { Cap = true, Pop = 1.315, Lat = 40.2080230712891, Lon = 44.5326690673828, Country = "Armenia", Name = "Yerevan" },
new WorldCity { Cap = false, Pop = 0.964, Lat = 40.0446434020996, Lon = -82.9927062988281, Country = "US", Name = "Columbus" },
new WorldCity { Cap = true, Pop = 2.400, Lat = 39.929328918457, Lon = 32.853271484375, Country = "Turkey", Name = "Ankara" },
new WorldCity { Cap = false, Pop = 5.209, Lat = 39.9275512695313, Lon = -75.2182235717773, Country = "US", Name = "Philadelphia" },
new WorldCity { Cap = true, Pop = 6.450, Lat = 39.906192779541, Lon = 116.388038635254, Country = "China", Name = "Beijing" },
new WorldCity { Cap = false, Pop = 0.246, Lat = 39.9044532775879, Lon = 41.2918243408203, Country = "Turkey", Name = "Erzurum" },
new WorldCity { Cap = false, Pop = 0.366, Lat = 39.6575813293457, Lon = 66.9476013183594, Country = "Uzbekistan", Name = "Samarkand" },
new WorldCity { Cap = false, Pop = 1.060, Lat = 39.6154441833496, Lon = 118.180213928223, Country = "China", Name = "Tangshan" },
new WorldCity { Cap = false, Pop = 1.270, Lat = 39.4709167480469, Lon = -0.367400944232941, Country = "Spain", Name = "Valencia" },
new WorldCity { Cap = false, Pop = 1.960, Lat = 39.3218841552734, Lon = -76.6183776855469, Country = "US", Name = "Baltimore" },
new WorldCity { Cap = false, Pop = 0.305, Lat = 39.2251434326172, Lon = 9.10890960693359, Country = "Italy", Name = "Cagliari" },
new WorldCity { Cap = false, Pop = 1.480, Lat = 39.1480102539063, Lon = -84.4770202636719, Country = "US", Name = "Cincinnati" },
new WorldCity { Cap = false, Pop = 4.880, Lat = 39.1284141540527, Lon = 117.18522644043, Country = "China", Name = "Tianjin" },
new WorldCity { Cap = true, Pop = 1.600, Lat = 39.0285148620605, Lon = 125.757514953613, Country = "Korea D P Rp", Name = "Pyongyang" },
new WorldCity { Cap = false, Pop = 1.272, Lat = 38.9941177368164, Lon = -94.6265640258789, Country = "US", Name = "Kansas City" },
new WorldCity { Cap = true, Pop = 3.221, Lat = 38.8909111022949, Lon = -76.9538345336914, Country = "US", Name = "Washington D.C." },
new WorldCity { Cap = false, Pop = 2.203, Lat = 38.6388854980469, Lon = -90.3419799804688, Country = "US", Name = "St. Louis" },
new WorldCity { Cap = false, Pop = 0.866, Lat = 38.5670166015625, Lon = -121.422706604004, Country = "US", Name = "Sacramento" },
new WorldCity { Cap = false, Pop = 0.971, Lat = 38.0809783935547, Lon = 46.2901191711426, Country = "Iran", Name = "Tabriz" },
new WorldCity { Cap = false, Pop = 1.190, Lat = 38.0770950317383, Lon = 114.559707641602, Country = "China", Name = "Shijiazhuang" },
new WorldCity { Cap = true, Pop = 0.398, Lat = 37.9504203796387, Lon = 58.3901329040527, Country = "Turkmenistan", Name = "Ashkhabad" },
new WorldCity { Cap = false, Pop = 1.660, Lat = 37.8930549621582, Lon = 112.551704406738, Country = "China", Name = "Taiyuan" },
new WorldCity { Cap = true, Pop = 15.850, Lat = 37.542350769043, Lon = 126.935249328613, Country = "Korea Rep", Name = "Seoul" },
new WorldCity { Cap = false, Pop = 0.945, Lat = 37.3726463317871, Lon = -5.97083187103271, Country = "Spain", Name = "Sevilla" },
new WorldCity { Cap = false, Pop = 0.778, Lat = 36.9999809265137, Lon = 35.3243637084961, Country = "Turkey", Name = "Adana" },
new WorldCity { Cap = false, Pop = 0.796, Lat = 36.8792915344238, Lon = -76.2685699462891, Country = "US", Name = "Norfolk" },
new WorldCity { Cap = true, Pop = 1.225, Lat = 36.8188133239746, Lon = 10.1659603118896, Country = "Tunisia", Name = "Tunis" },
new WorldCity { Cap = false, Pop = 0.830, Lat = 36.7914962768555, Lon = 118.062042236328, Country = "China", Name = "Zibo" },
new WorldCity { Cap = false, Pop = 1.460, Lat = 36.6555366516113, Lon = 116.967056274414, Country = "China", Name = "Jinan" },
new WorldCity { Cap = false, Pop = 0.571, Lat = 36.3355674743652, Lon = 43.1371269226074, Country = "Iraq", Name = "Mosul" },
new WorldCity { Cap = false, Pop = 1.464, Lat = 36.2900695800781, Lon = 59.596851348877, Country = "Iran", Name = "Mashhad" },
new WorldCity { Cap = false, Pop = 1.216, Lat = 36.2155456542969, Lon = 37.1592826843262, Country = "Syria", Name = "Aleppo" },
new WorldCity { Cap = false, Pop = 1.270, Lat = 36.1134300231934, Lon = 103.599594116211, Country = "China", Name = "Lanzhou" },
new WorldCity { Cap = false, Pop = 2.206, Lat = 35.8635368347168, Lon = 128.591384887695, Country = "Korea Rep", Name = "Taegu" },
new WorldCity { Cap = true, Pop = 6.400, Lat = 35.7744750976563, Lon = 51.4476509094238, Country = "Iran", Name = "Tehran" },
new WorldCity { Cap = true, Pop = 23.620, Lat = 35.6830558776855, Lon = 139.809188842773, Country = "Japan", Name = "Tokyo" },
new WorldCity { Cap = false, Pop = 1.089, Lat = 35.5045700073242, Lon = 139.72721862793, Country = "Japan", Name = "Kawasaki" },
new WorldCity { Cap = false, Pop = 0.742, Lat = 35.4895896911621, Lon = -97.5302963256836, Country = "US", Name = "Oklahoma City" },
new WorldCity { Cap = false, Pop = 2.993, Lat = 35.437385559082, Lon = 139.619659423828, Country = "Japan", Name = "Yokohama" },
new WorldCity { Cap = false, Pop = 0.479, Lat = 35.2058143615723, Lon = -80.8356857299805, Country = "US", Name = "Charlotte" },
new WorldCity { Cap = false, Pop = 3.800, Lat = 35.1578674316406, Lon = 129.0546875, Country = "Korea Rep", Name = "Pusan" },
new WorldCity { Cap = false, Pop = 4.800, Lat = 35.1549224853516, Lon = 136.920593261719, Country = "Japan", Name = "Nagoya" },
new WorldCity { Cap = false, Pop = 0.853, Lat = 35.1147270202637, Lon = -90.0003280639648, Country = "US", Name = "Memphis" },
new WorldCity { Cap = false, Pop = 1.479, Lat = 35.0091285705566, Lon = 135.754821777344, Country = "Japan", Name = "Kyoto" },
new WorldCity { Cap = false, Pop = 1.170, Lat = 34.757682800293, Lon = 113.641777038574, Country = "China", Name = "Zhengzhou" },
new WorldCity { Cap = false, Pop = 0.431, Lat = 34.7338752746582, Lon = 36.7181739807129, Country = "Syria", Name = "Homs" },
new WorldCity { Cap = false, Pop = 0.740, Lat = 34.6713485717773, Lon = 112.361236572266, Country = "China", Name = "Luoyang" },
new WorldCity { Cap = false, Pop = 15.040, Lat = 34.6355285644531, Lon = 135.519119262695, Country = "Japan", Name = "Osaka" },
new WorldCity { Cap = true, Pop = 1.179, Lat = 34.5309066772461, Lon = 69.1367568969727, Country = "Afghanistan", Name = "Kabul" },
new WorldCity { Cap = false, Pop = 1.575, Lat = 34.377555847168, Lon = 132.444778442383, Country = "Japan", Name = "Hiroshima" },
new WorldCity { Cap = false, Pop = 2.050, Lat = 34.265697479248, Lon = 108.883361816406, Country = "China", Name = "Xian" },
new WorldCity { Cap = false, Pop = 0.535, Lat = 34.0435676574707, Lon = -4.99554777145386, Country = "Morocco", Name = "Fes" },
new WorldCity { Cap = false, Pop = 1.963, Lat = 33.7957000732422, Lon = -84.3492279052734, Country = "US", Name = "Atlanta" },
new WorldCity { Cap = true, Pop = 0.204, Lat = 33.7181510925293, Lon = 73.060546875, Country = "Pakistan", Name = "Islamabad" },
new WorldCity { Cap = false, Pop = 0.836, Lat = 33.6058044433594, Lon = 73.0437469482422, Country = "Pakistan", Name = "Rawalpindi" },
new WorldCity { Cap = true, Pop = 1.850, Lat = 33.5193023681641, Lon = 36.3134536743164, Country = "Syria", Name = "Damascus" },
new WorldCity { Cap = false, Pop = 1.482, Lat = 33.5090217590332, Lon = -112.110260009766, Country = "US", Name = "Phoenix" },
new WorldCity { Cap = true, Pop = 3.841, Lat = 33.3340377807617, Lon = 44.397834777832, Country = "Iraq", Name = "Baghdad" },
new WorldCity { Cap = false, Pop = 2.727, Lat = 32.763729095459, Lon = -96.663688659668, Country = "US", Name = "Dallas" },
new WorldCity { Cap = false, Pop = 0.987, Lat = 32.6513900756836, Lon = 51.6791877746582, Country = "Iran", Name = "Esfahan" },
new WorldCity { Cap = false, Pop = 2.290, Lat = 32.0483665466309, Lon = 118.768905639648, Country = "China", Name = "Nanjing" },
new WorldCity { Cap = true, Pop = 1.250, Lat = 31.9493827819824, Lon = 35.9329071044922, Country = "Jordan", Name = "Amman" },
new WorldCity { Cap = false, Pop = 0.595, Lat = 31.6308898925781, Lon = 74.8715515136719, Country = "India", Name = "Amritsar" },
new WorldCity { Cap = false, Pop = 3.025, Lat = 31.5450534820557, Lon = 74.3406753540039, Country = "Pakistan", Name = "Lahore" },
new WorldCity { Cap = false, Pop = 1.104, Lat = 31.4089508056641, Lon = 73.0834579467773, Country = "Pakistan", Name = "Faisalabad" },
new WorldCity { Cap = false, Pop = 9.300, Lat = 31.2478694915771, Lon = 121.47265625, Country = "China", Name = "Shanghai" },
new WorldCity { Cap = false, Pop = 1.810, Lat = 30.6700687408447, Lon = 104.071273803711, Country = "China", Name = "Chengdu" },
new WorldCity { Cap = false, Pop = 3.490, Lat = 30.5724983215332, Lon = 114.279220581055, Country = "China", Name = "Wuhan" },
new WorldCity { Cap = false, Pop = 0.617, Lat = 30.503490447998, Lon = 47.7608642578125, Country = "Iraq", Name = "Al Basra" },
new WorldCity { Cap = false, Pop = 1.270, Lat = 30.2526245117188, Lon = 120.165077209473, Country = "China", Name = "Hangzhou" },
new WorldCity { Cap = true, Pop = 9.300, Lat = 30.0779113769531, Lon = 31.2507972717285, Country = "Egypt", Name = "Cairo" },
new WorldCity { Cap = false, Pop = 1.185, Lat = 29.9563789367676, Lon = -90.0986862182617, Country = "US", Name = "New Orleans" },
new WorldCity { Cap = false, Pop = 2.755, Lat = 29.7718296051025, Lon = -95.407112121582, Country = "US", Name = "Houston" },
new WorldCity { Cap = false, Pop = 0.084, Lat = 29.6507034301758, Lon = 91.1320877075195, Country = "China", Name = "Lhasa" },
new WorldCity { Cap = false, Pop = 2.450, Lat = 29.5441036224365, Lon = 106.522689819336, Country = "China", Name = "Chongqing" },
new WorldCity { Cap = false, Pop = 0.968, Lat = 29.4299221038818, Lon = -98.5245742797852, Country = "US", Name = "San Antonio" },
new WorldCity { Cap = false, Pop = 1.030, Lat = 28.6712398529053, Lon = 115.88941192627, Country = "China", Name = "Nanchang" },
new WorldCity { Cap = true, Pop = 0.273, Lat = 28.5687255859375, Lon = 77.2167510986328, Country = "India", Name = "New Delhi" },
new WorldCity { Cap = false, Pop = 7.200, Lat = 28.5264587402344, Lon = 77.2243728637695, Country = "India", Name = "Delhi" },
new WorldCity { Cap = false, Pop = 1.190, Lat = 28.1976413726807, Lon = 112.968482971191, Country = "China", Name = "Changsha" },
new WorldCity { Cap = true, Pop = 0.320, Lat = 27.7120170593262, Lon = 85.3129501342773, Country = "Nepal", Name = "Kathmandu" },
new WorldCity { Cap = true, Pop = 0.012, Lat = 27.44260597229, Lon = 89.6673278808594, Country = "Bhutan", Name = "Thimbu" },
new WorldCity { Cap = false, Pop = 1.025, Lat = 26.9051132202148, Lon = 75.8012771606445, Country = "India", Name = "Jaipur" },
new WorldCity { Cap = false, Pop = 1.060, Lat = 26.8494281768799, Lon = 80.9197235107422, Country = "India", Name = "Lucknow" },
new WorldCity { Cap = false, Pop = 1.010, Lat = 26.5719413757324, Lon = 106.700302124023, Country = "China", Name = "Guiyang" },
new WorldCity { Cap = false, Pop = 1.875, Lat = 26.4578304290771, Lon = 80.3178634643555, Country = "India", Name = "Kanpur" },
new WorldCity { Cap = false, Pop = 0.890, Lat = 26.0710163116455, Lon = 119.303520202637, Country = "China", Name = "Fuzhou" },
new WorldCity { Cap = false, Pop = 2.827, Lat = 25.8321304321289, Lon = -80.2702178955078, Country = "US", Name = "Miami" },
new WorldCity { Cap = false, Pop = 2.015, Lat = 25.6773529052734, Lon = -100.317085266113, Country = "Mexico", Name = "Monterrey" },
new WorldCity { Cap = false, Pop = 1.025, Lat = 25.6138973236084, Lon = 85.1353454589844, Country = "India", Name = "Patna" },
new WorldCity { Cap = false, Pop = 0.800, Lat = 25.3801860809326, Lon = 68.3664703369141, Country = "Pakistan", Name = "Hyderabad" },
new WorldCity { Cap = false, Pop = 0.925, Lat = 25.2820110321045, Lon = 82.9563369750977, Country = "India", Name = "Benares" },
new WorldCity { Cap = true, Pop = 0.310, Lat = 25.2036418914795, Lon = 51.4972343444824, Country = "Qatar", Name = "Doha" },
new WorldCity { Cap = false, Pop = 1.280, Lat = 25.0510330200195, Lon = 102.702125549316, Country = "China", Name = "Kunming" },
new WorldCity { Cap = true, Pop = 6.130, Lat = 25.0350914001465, Lon = 121.506729125977, Country = "Taiwan", Name = "Taipei" },
new WorldCity { Cap = false, Pop = 0.715, Lat = 24.1436424255371, Lon = 120.670280456543, Country = "Taiwan", Name = "T`ai-chung" },
new WorldCity { Cap = true, Pop = 3.430, Lat = 23.7099189758301, Lon = 90.4071426391602, Country = "Bangladesh", Name = "Dhaka" },
new WorldCity { Cap = false, Pop = 3.050, Lat = 23.0961952209473, Lon = 113.293609619141, Country = "China", Name = "Guangzhou" },
new WorldCity { Cap = false, Pop = 2.400, Lat = 23.0397911071777, Lon = 72.5668640136719, Country = "India", Name = "Ahmadabad" },
new WorldCity { Cap = false, Pop = 0.648, Lat = 22.8426475524902, Lon = 89.5582427978516, Country = "Bangladesh", Name = "Khulna" },
new WorldCity { Cap = false, Pop = 11.100, Lat = 22.5435371398926, Lon = 88.3342208862305, Country = "India", Name = "Calcutta" },
new WorldCity { Cap = false, Pop = 0.435, Lat = 22.2432346343994, Lon = -97.8426284790039, Country = "Mexico", Name = "Tampico" },
new WorldCity { Cap = false, Pop = 0.533, Lat = 21.975944519043, Lon = 96.0841522216797, Country = "Burma", Name = "Mandalay" },
new WorldCity { Cap = false, Pop = 0.550, Lat = 21.4273815155029, Lon = 39.8148384094238, Country = "Saudi Arabia", Name = "Mecca" },
new WorldCity { Cap = false, Pop = 1.302, Lat = 21.1557579040527, Lon = 79.089111328125, Country = "India", Name = "Nagpur" },
new WorldCity { Cap = true, Pop = 1.500, Lat = 21.0319480895996, Lon = 105.81990814209, Country = "Vietnam", Name = "Hanoi" },
new WorldCity { Cap = false, Pop = 0.385, Lat = 20.8613586425781, Lon = 106.679794311523, Country = "Vietnam", Name = "Haiphong" },
new WorldCity { Cap = false, Pop = 0.400, Lat = 20.8218688964844, Lon = -89.552864074707, Country = "Mexico", Name = "Merida" },
new WorldCity { Cap = false, Pop = 2.325, Lat = 20.6735916137695, Lon = -103.343795776367, Country = "Mexico", Name = "Guadalajara" },
new WorldCity { Cap = false, Pop = 0.207, Lat = 19.6157131195068, Lon = 37.2196884155273, Country = "Sudan", Name = "Bur Sudan" },
new WorldCity { Cap = true, Pop = 14.100, Lat = 19.4270458221436, Lon = -99.127571105957, Country = "Mexico", Name = "Mexico City" },
new WorldCity { Cap = false, Pop = 1.055, Lat = 19.0486316680908, Lon = -98.1929473876953, Country = "Mexico", Name = "Puebla de Zaragoza" },
new WorldCity { Cap = false, Pop = 1.775, Lat = 18.5357475280762, Lon = 73.8522720336914, Country = "India", Name = "Pune" },
new WorldCity { Cap = true, Pop = 0.880, Lat = 18.5266170501709, Lon = -72.3431091308594, Country = "Haiti", Name = "Port-au-Prince" },
new WorldCity { Cap = true, Pop = 1.775, Lat = 18.4006156921387, Lon = -66.0817565917969, Country = "Puerto Rico", Name = "San Juan" },
new WorldCity { Cap = true, Pop = 0.770, Lat = 18.0157127380371, Lon = -76.7973022460938, Country = "Jamaica", Name = "Kingston" },
new WorldCity { Cap = false, Pop = 2.750, Lat = 17.3945465087891, Lon = 78.4850311279297, Country = "India", Name = "Hyderabad" },
new WorldCity { Cap = true, Pop = 2.800, Lat = 16.8722229003906, Lon = 96.1248931884766, Country = "Burma", Name = "Rangoon" },
new WorldCity { Cap = true, Pop = 0.427, Lat = 15.3614444732666, Lon = 44.2095031738281, Country = "Yemen", Name = "Sanaa" },
new WorldCity { Cap = true, Pop = 1.400, Lat = 14.6180076599121, Lon = -90.52490234375, Country = "Guatemala", Name = "Guatemala" },
new WorldCity { Cap = true, Pop = 0.552, Lat = 14.0990505218506, Lon = -87.2030944824219, Country = "Honduras", Name = "Tegucigalpa" },
new WorldCity { Cap = true, Pop = 6.450, Lat = 13.7455711364746, Lon = 100.552665710449, Country = "Thailand", Name = "Bangkok" },
new WorldCity { Cap = true, Pop = 0.920, Lat = 13.7014122009277, Lon = -89.2002334594727, Country = "El Salvador", Name = "San Salvador" },
new WorldCity { Cap = true, Pop = 0.398, Lat = 13.6045436859131, Lon = 2.08344984054565, Country = "Niger", Name = "Niamey" },
new WorldCity { Cap = false, Pop = 4.475, Lat = 13.0615034103394, Lon = 80.2478256225586, Country = "India", Name = "Madras" },
new WorldCity { Cap = false, Pop = 2.950, Lat = 12.9747505187988, Lon = 77.5877304077148, Country = "India", Name = "Bangalore" },
new WorldCity { Cap = true, Pop = 0.646, Lat = 12.6529502868652, Lon = -7.98648166656494, Country = "Mali", Name = "Bamako" },
new WorldCity { Cap = true, Pop = 0.682, Lat = 12.1514730453491, Lon = -86.2730331420898, Country = "Nicaragua", Name = "Managua" },
new WorldCity { Cap = true, Pop = 0.700, Lat = 11.564736366272, Lon = 104.913192749023, Country = "Cambodia", Name = "Phnom Penh" },
new WorldCity { Cap = false, Pop = 3.100, Lat = 10.7591819763184, Lon = 106.662452697754, Country = "Vietnam", Name = "Ho Chi Minh City" },
new WorldCity { Cap = false, Pop = 0.891, Lat = 10.6450433731079, Lon = -71.6371459960938, Country = "Venezuela", Name = "Maracaibo" },
new WorldCity { Cap = true, Pop = 3.600, Lat = 10.4960489273071, Lon = -66.8982849121094, Country = "Venezuela", Name = "Caracas" },
new WorldCity { Cap = false, Pop = 0.498, Lat = 10.0656652450562, Lon = -69.3391952514648, Country = "Venezuela", Name = "Barquisimeto" },
new WorldCity { Cap = true, Pop = 0.670, Lat = 9.93047618865967, Lon = -84.07861328125, Country = "Costa Rica", Name = "San Jose" },
new WorldCity { Cap = false, Pop = 0.960, Lat = 9.91398620605469, Lon = 78.1217269897461, Country = "India", Name = "Madurai" },
new WorldCity { Cap = false, Pop = 1.144, Lat = 7.37884044647217, Lon = 3.8952784538269, Country = "Nigeria", Name = "Ibadan" },
new WorldCity { Cap = false, Pop = 0.409, Lat = 7.08008003234863, Lon = 125.613677978516, Country = "Philippines", Name = "Davao" },
new WorldCity { Cap = false, Pop = 0.253, Lat = 6.45053863525391, Lon = 7.4920802116394, Country = "Nigeria", Name = "Enugu" },
new WorldCity { Cap = false, Pop = 2.095, Lat = 6.24114656448364, Lon = -75.5920333862305, Country = "Colombia", Name = "Medellin" },
new WorldCity { Cap = true, Pop = 1.250, Lat = 5.55856275558472, Lon = -0.200923636555672, Country = "Ghana", Name = "Accra" },
new WorldCity { Cap = true, Pop = 1.950, Lat = 5.32485723495483, Lon = -4.02188682556152, Country = "Ivory Coast", Name = "Abidjan" },
new WorldCity { Cap = true, Pop = 4.260, Lat = 4.63021993637085, Lon = -74.0805130004883, Country = "Colombia", Name = "Bogota" },
new WorldCity { Cap = true, Pop = 0.474, Lat = 4.3658561706543, Lon = 18.5623416900635, Country = "Cent Af Rep", Name = "Bangui" },
new WorldCity { Cap = true, Pop = 0.654, Lat = 3.86512303352356, Lon = 11.5136413574219, Country = "Cameroon", Name = "Yaounde" },
new WorldCity { Cap = false, Pop = 1.374, Lat = 3.58524203300476, Lon = 98.6755981445313, Country = "Indonesia", Name = "Medan" },
new WorldCity { Cap = false, Pop = 1.400, Lat = 3.45685529708862, Lon = -76.5224380493164, Country = "Colombia", Name = "Cali" },
new WorldCity { Cap = true, Pop = 1.475, Lat = 3.1502103805542, Lon = 101.707672119141, Country = "Malaysia", Name = "Kuala Lumpur" },
new WorldCity { Cap = true, Pop = 0.600, Lat = 2.04117751121521, Lon = 45.3441429138184, Country = "Somalia", Name = "Muqdisho" },
new WorldCity { Cap = false, Pop = 0.283, Lat = 0.519284904003143, Lon = 25.1961479187012, Country = "Zaire", Name = "Kisangani" },
new WorldCity { Cap = true, Pop = 1.050, Lat = -0.229498133063316, Lon = -78.524284362793, Country = "Ecuador", Name = "Quito" },
new WorldCity { Cap = false, Pop = 0.179, Lat = -3.75289535522461, Lon = -73.1914901733398, Country = "Peru", Name = "Iquitos" },
new WorldCity { Cap = false, Pop = 1.825, Lat = -3.78332185745239, Lon = -38.5889015197754, Country = "Brazil", Name = "Fortaleza" },
new WorldCity { Cap = true, Pop = 0.586, Lat = -4.28518676757813, Lon = 15.2851486206055, Country = "Congo", Name = "Brazzaville" },
new WorldCity { Cap = false, Pop = 0.291, Lat = -5.89221096038818, Lon = 22.4027786254883, Country = "Zaire", Name = "Kananga" },
new WorldCity { Cap = true, Pop = 1.300, Lat = -6.81735897064209, Lon = 39.2533493041992, Country = "Tanzania", Name = "Dar es Salaam" },
new WorldCity { Cap = false, Pop = 1.800, Lat = -6.91243028640747, Lon = 107.606903076172, Country = "Indonesia", Name = "Bandung" },
new WorldCity { Cap = false, Pop = 2.625, Lat = -8.08516788482666, Lon = -34.9146385192871, Country = "Brazil", Name = "Recife" },
new WorldCity { Cap = false, Pop = 0.155, Lat = -12.7177352905273, Lon = 13.464879989624, Country = "Angola", Name = "Benguela" },
new WorldCity { Cap = true, Pop = 1.568, Lat = -15.7921094894409, Lon = -47.8977470397949, Country = "Brazil", Name = "Brasilia" },
new WorldCity { Cap = false, Pop = 0.447, Lat = -16.3975391387939, Lon = -71.5227432250977, Country = "Peru", Name = "Arequipa" },
new WorldCity { Cap = true, Pop = 0.993, Lat = -16.4990062713623, Lon = -68.1462478637695, Country = "Bolivia", Name = "La Paz" },
new WorldCity { Cap = false, Pop = 0.990, Lat = -16.7266998291016, Lon = -49.254810333252, Country = "Brazil", Name = "Goiania" },
new WorldCity { Cap = false, Pop = 0.442, Lat = -17.7887916564941, Lon = -63.1974182128906, Country = "Bolivia", Name = "Santa Cruz de La Sierra" },
new WorldCity { Cap = false, Pop = 0.087, Lat = -19.0421352386475, Lon = -65.2558822631836, Country = "Bolivia", Name = "Sucre" },
new WorldCity { Cap = false, Pop = 2.950, Lat = -19.8517208099365, Lon = -43.9090690612793, Country = "Brazil", Name = "Belo Horizonte" },
new WorldCity { Cap = false, Pop = 10.150, Lat = -22.7215728759766, Lon = -43.4551773071289, Country = "Brazil", Name = "Rio de Janeiro" },
new WorldCity { Cap = false, Pop = 15.175, Lat = -23.5813045501709, Lon = -46.6228981018066, Country = "Brazil", Name = "Sao Paulo" },
new WorldCity { Cap = false, Pop = 1.065, Lat = -23.9547004699707, Lon = -46.3094940185547, Country = "Brazil", Name = "Santos" },
new WorldCity { Cap = true, Pop = 0.095, Lat = -24.6614418029785, Lon = 25.7948017120361, Country = "Botswana", Name = "Gaborone" },
new WorldCity { Cap = false, Pop = 1.700, Lat = -25.4304790496826, Lon = -49.2845077514648, Country = "Brazil", Name = "Curitiba" },
new WorldCity { Cap = true, Pop = 0.960, Lat = -25.7313461303711, Lon = 28.2183723449707, Country = "South Africa", Name = "Pretoria" },
new WorldCity { Cap = true, Pop = 1.070, Lat = -25.9621543884277, Lon = 32.5736923217773, Country = "Mozambique", Name = "Maputo" },
new WorldCity { Cap = false, Pop = 3.650, Lat = -26.1789569854736, Lon = 28.0043087005615, Country = "South Africa", Name = "Johannesburg" },
new WorldCity { Cap = false, Pop = 1.149, Lat = -27.4539127349854, Lon = 153.026489257813, Country = "Australia", Name = "Brisbane" },
new WorldCity { Cap = false, Pop = 1.550, Lat = -29.8363723754883, Lon = 30.9421882629395, Country = "South Africa", Name = "Durban" },
new WorldCity { Cap = false, Pop = 2.600, Lat = -30.0395336151123, Lon = -51.2079887390137, Country = "Brazil", Name = "Porto Alegre" },
new WorldCity { Cap = false, Pop = 1.070, Lat = -31.3162784576416, Lon = -64.1798553466797, Country = "Argentina", Name = "Cordoba" },
new WorldCity { Cap = false, Pop = 0.292, Lat = -31.6168975830078, Lon = -60.6978416442871, Country = "Argentina", Name = "Santa Fe" },
new WorldCity { Cap = false, Pop = 0.650, Lat = -32.8974380493164, Lon = -68.8297348022461, Country = "Argentina", Name = "Mendoza" },
new WorldCity { Cap = false, Pop = 1.045, Lat = -32.9377365112305, Lon = -60.6639404296875, Country = "Argentina", Name = "Rosario" },
new WorldCity { Cap = true, Pop = 4.100, Lat = -33.475025177002, Lon = -70.6475143432617, Country = "Chile", Name = "Santiago" },
new WorldCity { Cap = false, Pop = 0.690, Lat = -33.8815765380859, Lon = 25.4842987060547, Country = "South Africa", Name = "Port Elizabeth" },
new WorldCity { Cap = false, Pop = 3.365, Lat = -33.8897743225098, Lon = 151.028198242188, Country = "Australia", Name = "Sydney" },
new WorldCity { Cap = true, Pop = 10.750, Lat = -34.6654014587402, Lon = -58.4095916748047, Country = "Argentina", Name = "Buenos Aires" },
new WorldCity { Cap = true, Pop = 0.271, Lat = -35.349925994873, Lon = 149.041625976563, Country = "Australia", Name = "Canberra" },
new WorldCity { Cap = false, Pop = 0.850, Lat = -36.893253326416, Lon = 174.801055908203, Country = "New Zealand", Name = "Auckland" },
new WorldCity { Cap = false, Pop = 2.833, Lat = -37.8529586791992, Lon = 145.075103759766, Country = "Australia", Name = "Melbourne" },
new WorldCity { Cap = false, Pop = 0.224, Lat = -38.7252731323242, Lon = -62.2740669250488, Country = "Argentina", Name = "Bahia Blanca" },
new WorldCity { Cap = false, Pop = 0.320, Lat = -43.5489158630371, Lon = 172.683654785156, Country = "New Zealand", Name = "Christchurch" },
new WorldCity { Cap = true, Pop = 0.900, Lat = 60.1964225769043, Lon = 24.9766998291016, Country = "Finland", Name = "Helsinki" },
new WorldCity { Cap = false, Pop = 0.310, Lat = 34.745231628418, Lon = 10.7592582702637, Country = "Tunisia", Name = "Sfax" },
new WorldCity { Cap = false, Pop = 1.411, Lat = 34.6638412475586, Lon = 135.181838989258, Country = "Japan", Name = "Kobe" },
new WorldCity { Cap = false, Pop = 0.490, Lat = 31.7737464904785, Lon = 35.2252197265625, Country = "Israel", Name = "Jerusalem" },
new WorldCity { Cap = false, Pop = 0.616, Lat = 10.1782207489014, Lon = -68.0031127929688, Country = "Venezuela", Name = "Valencia" },
new WorldCity { Cap = false, Pop = 1.255, Lat = -2.20381617546082, Lon = -79.9093933105469, Country = "Ecuador", Name = "Guayaquil" },
new WorldCity { Cap = false, Pop = 4.054, Lat = 37.7275123596191, Lon = -122.308815002441, Country = "US", Name = "San Francisco" },
new WorldCity { Cap = false, Pop = 0.630, Lat = 55.8752517700195, Lon = -3.29878330230713, Country = "UK", Name = "Edinburgh" },
new WorldCity { Cap = false, Pop = 0.239, Lat = 45.7002830505371, Lon = 13.9328374862671, Country = "Italy", Name = "Trieste" },
new WorldCity { Cap = false, Pop = 1.750, Lat = 33.3099060058594, Lon = 130.317184448242, Country = "Japan", Name = "Fukuoka" },
new WorldCity { Cap = false, Pop = 1.525, Lat = 33.6818656921387, Lon = 130.797454833984, Country = "Japan", Name = "Kita Kyushu" },
new WorldCity { Cap = true, Pop = 0.303, Lat = 12.1041393280029, Lon = 15.2408237457275, Country = "Chad", Name = "N'Djamena" },
new WorldCity { Cap = true, Pop = 0.991, Lat = 32.7516174316406, Lon = 13.2118225097656, Country = "Libya", Name = "Tripoli" },
new WorldCity { Cap = false, Pop = 1.550, Lat = 38.4389190673828, Lon = 27.2057685852051, Country = "Turkey", Name = "Izmir" },
new WorldCity { Cap = true, Pop = 3.000, Lat = -4.38867473602295, Lon = 15.4692935943604, Country = "Zaire", Name = "Kinshasa" },
new WorldCity { Cap = false, Pop = 0.978, Lat = -34.9185371398926, Lon = 138.870681762695, Country = "Australia", Name = "Adelaide" },
new WorldCity { Cap = true, Pop = 8.600, Lat = -6.29390430450439, Lon = 106.762466430664, Country = "Indonesia", Name = "Jakarta" },
new WorldCity { Cap = false, Pop = 1.025, Lat = -7.02784442901611, Lon = 110.444259643555, Country = "Indonesia", Name = "Semarang" },
new WorldCity { Cap = false, Pop = 0.264, Lat = -12.0435400009155, Lon = -76.8356323242188, Country = "Peru", Name = "Callao" },
new WorldCity { Cap = false, Pop = 1.200, Lat = -1.60532903671265, Lon = -48.316276550293, Country = "Brazil", Name = "Belem" },
new WorldCity { Cap = false, Pop = 1.270, Lat = 36.1483535766602, Lon = 120.434127807617, Country = "China", Name = "Qingdao" },
new WorldCity { Cap = true, Pop = 0.377, Lat = 18.0017318725586, Lon = 102.680236816406, Country = "Laos", Name = "Vientiane" },
new WorldCity { Cap = false, Pop = 0.220, Lat = 47.8011703491211, Lon = 13.0908985137939, Country = "Austria", Name = "Salzburg" },
new WorldCity { Cap = true, Pop = 0.698, Lat = 45.8070755004883, Lon = 15.9643859863281, Country = "Croatia", Name = "Zagreb" },
new WorldCity { Cap = true, Pop = 0.273, Lat = -3.26908373832703, Lon = 29.5335865020752, Country = "Burundi", Name = "Bujumbura" },
new WorldCity { Cap = true, Pop = 0.185, Lat = 35.1650695800781, Lon = 33.3851623535156, Country = "Cyprus", Name = "Nicosia" },
new WorldCity { Cap = true, Pop = 0.182, Lat = -2.11793518066406, Lon = 29.9914855957031, Country = "Rwanda", Name = "Kigali" },
new WorldCity { Cap = true, Pop = 0.233, Lat = 46.068302154541, Lon = 14.639612197876, Country = "Slovenia", Name = "Ljubljana" },
new WorldCity { Cap = true, Pop = 0.109, Lat = -29.2567100524902, Lon = 27.8903884887695, Country = "Lesotho", Name = "Maseru" },
new WorldCity { Cap = true, Pop = 0.133, Lat = 49.740406036377, Lon = 6.27325582504272, Country = "Luxembourg", Name = "Luxembourg" },
new WorldCity { Cap = false, Pop = 0.770, Lat = 51.903621673584, Lon = 4.30062437057495, Country = "Netherlands", Name = "The Hague" },
new WorldCity { Cap = true, Pop = 0.435, Lat = 48.2745094299316, Lon = 17.2698059082031, Country = "Slovakia", Name = "Bratislava" },
new WorldCity { Cap = false, Pop = 0.201, Lat = 52.1100006103516, Lon = -106.629997253418, Country = "Canada", Name = "Saskatoon" },
new WorldCity { Cap = false, Pop = 0.187, Lat = 50.4099998474121, Lon = -104.650001525879, Country = "Canada", Name = "Regina" },
new WorldCity { Cap = false, Pop = 1.038, Lat = 31.7800006866455, Lon = -106.449996948242, Country = "US", Name = "El Paso" },
new WorldCity { Cap = false, Pop = 0.636, Lat = 30.3299999237061, Lon = -81.6600036621094, Country = "US", Name = "Jacksonville" },
new WorldCity { Cap = false, Pop = 0.002, Lat = 51.3300018310547, Lon = -80.7300033569336, Country = "Canada", Name = "Moosonee" },
new WorldCity { Cap = false, Pop = 0.002, Lat = 54.8600006103516, Lon = -67.0100021362305, Country = "Canada", Name = "Schefferville" },
new WorldCity { Cap = false, Pop = 0.008, Lat = 53.310001373291, Lon = -60.5499992370605, Country = "Canada", Name = "Goose Bay" },
new WorldCity { Cap = false, Pop = 0.202, Lat = -8.75, Lon = -63.9000015258789, Country = "Brazil", Name = "Porto Velho" },
new WorldCity { Cap = false, Pop = 0.185, Lat = -13.6000003814697, Lon = -71.8600006103516, Country = "Peru", Name = "Cuzco" },
new WorldCity { Cap = false, Pop = 0.280, Lat = -15.5500001907349, Lon = -56.0499992370605, Country = "Brazil", Name = "Cuiaba" },
new WorldCity { Cap = false, Pop = 0.220, Lat = -27.3999996185303, Lon = -58.9000015258789, Country = "Argentina", Name = "Resistencia" },
new WorldCity { Cap = false, Pop = 0.032, Lat = 16.7600002288818, Lon = -3.00999999046326, Country = "Mali", Name = "Tombouctoo" },
new WorldCity { Cap = false, Pop = 0.255, Lat = 11.8800001144409, Lon = 13.2600002288818, Country = "Niger", Name = "Maiduguri" },
new WorldCity { Cap = false, Pop = 0.145, Lat = -5.80999994277954, Lon = 13.4499998092651, Country = "Zaire", Name = "Matadi" },
new WorldCity { Cap = false, Pop = 0.203, Lat = -12.7299995422363, Lon = 15.7799997329712, Country = "Angola", Name = "Huambo" },
new WorldCity { Cap = false, Pop = 0.145, Lat = -28.6599998474121, Lon = 24.8299999237061, Country = "South Africa", Name = "Kimberley" },
new WorldCity { Cap = false, Pop = 0.320, Lat = -33.0299987792969, Lon = 27.8999996185303, Country = "South Africa", Name = "East london" },
new WorldCity { Cap = false, Pop = 0.247, Lat = -7.32999992370605, Lon = 19, Country = "Zaire", Name = "Kahemba" },
new WorldCity { Cap = false, Pop = 0.054, Lat = -6.17999982833862, Lon = 35.75, Country = "Tanzania", Name = "Dodoma" },
new WorldCity { Cap = false, Pop = 0.019, Lat = 68.3499984741211, Lon = 17.2999992370605, Country = "Norway", Name = "Narvik" },
new WorldCity { Cap = false, Pop = 0.160, Lat = 34.4599990844727, Lon = 62.2099990844727, Country = "Afghanistan", Name = "Herat" },
new WorldCity { Cap = false, Pop = 0.006, Lat = 55.8800010681152, Lon = 37.75, Country = "Russia", Name = "Druzba" },
new WorldCity { Cap = false, Pop = 0.146, Lat = 39.4799995422363, Lon = 76, Country = "China", Name = "Kashi" },
new WorldCity { Cap = false, Pop = 9.415, Lat = 24.9799995422363, Lon = 121.529998779297, Country = "Taiwan", Name = "Chingmei" },
new WorldCity { Cap = false, Pop = 0.166, Lat = 16.4599990844727, Lon = 107.699996948242, Country = "Vietnam", Name = "Hue" },
new WorldCity { Cap = false, Pop = 0.073, Lat = 1.5, Lon = 110.430000305176, Country = "Malaysia", Name = "Kuching" },
new WorldCity { Cap = false, Pop = 0.208, Lat = -1.21000003814697, Lon = 116.860000610352, Country = "Indonesia", Name = "Balikpapan" },
new WorldCity { Cap = false, Pop = 0.168, Lat = 50.3300018310547, Lon = 110.75, Country = "Russia", Name = "Chatanga" },
new WorldCity { Cap = false, Pop = 0.006, Lat = 52.0499992370605, Lon = 113.580001831055, Country = "Russia", Name = "Chita" },
new WorldCity { Cap = false, Pop = 0.001, Lat = 67.5800018310547, Lon = 133.410003662109, Country = "Russia", Name = "Verkhoyansk" },
new WorldCity { Cap = false, Pop = 0.187, Lat = 62.0099983215332, Lon = 129.830001831055, Country = "Russia", Name = "Yakutsk" },
new WorldCity { Cap = false, Pop = 0.006, Lat = 59.3300018310547, Lon = 143.25, Country = "Russia", Name = "Okhotsk" },
new WorldCity { Cap = false, Pop = 0.000, Lat = 50.0800018310547, Lon = 45.5299987792969, Country = "Russia", Name = "Nikolayevsk" },
new WorldCity { Cap = false, Pop = 0.000, Lat = 46.9599990844727, Lon = 142.75, Country = "Russia", Name = "Yuzhno-Sakhalinsk" },
new WorldCity { Cap = false, Pop = 0.000, Lat = -23.6299991607666, Lon = 133.929992675781, Country = "Australia", Name = "Alice Springs" },
new WorldCity { Cap = false, Pop = 0.039, Lat = -16.8500003814697, Lon = 145.710006713867, Country = "Australia", Name = "Cairns" },
new WorldCity { Cap = false, Pop = 0.106, Lat = -19.2999992370605, Lon = 146.830001831055, Country = "Australia", Name = "Townsville" },
new WorldCity { Cap = false, Pop = 0.059, Lat = -23.4300003051758, Lon = 150.479995727539, Country = "Australia", Name = "Rockhampton" },
new WorldCity { Cap = false, Pop = 0.405, Lat = -33, Lon = 151.910003662109, Country = "Australia", Name = "Newcastle" },
new WorldCity { Cap = false, Pop = 0.175, Lat = -43, Lon = 147.5, Country = "Australia", Name = "Hobart" },
new WorldCity { Cap = false, Pop = 0.109, Lat = -45.8600006103516, Lon = 170.5, Country = "New Zealand", Name = "Dunedin" },
new WorldCity { Cap = false, Pop = 0.256, Lat = 48.6545677185059, Lon = -123.569107055664, Country = "Canada", Name = "Victoria" },
new WorldCity { Cap = true, Pop = 0.164, Lat = 6.60109615325928, Lon = 2.63250279426575, Country = "Benin", Name = "Porto Novo" },
new WorldCity { Cap = false, Pop = 1.030, Lat = 4.13665008544922, Lon = 9.706374168396, Country = "Cameroon", Name = "Douala" },
new WorldCity { Cap = false, Pop = 0.708, Lat = -5.19043016433716, Lon = 119.722793579102, Country = "Indonesia", Name = "Vjuag Padang" },
new WorldCity { Cap = false, Pop = 0.112, Lat = -3.3865532875061, Lon = 129.312927246094, Country = "Indonesia", Name = "Ambon" },
new WorldCity { Cap = false, Pop = 1.604, Lat = 37.5894508361816, Lon = 126.767440795898, Country = "Korea Rep", Name = "Inch`on" },
new WorldCity { Cap = false, Pop = 1.680, Lat = 39.0317153930664, Lon = 121.598197937012, Country = "China", Name = "Dalian" },
new WorldCity { Cap = false, Pop = 1.227, Lat = 45.4421310424805, Lon = -122.641677856445, Country = "US", Name = "Portland" },
new WorldCity { Cap = false, Pop = 0.810, Lat = -3.12230491638184, Lon = -60.0146179199219, Country = "Brazil", Name = "Manaus" },
new WorldCity { Cap = false, Pop = 0.227, Lat = -2.46000003814697, Lon = -54.6100006103516, Country = "Brazil", Name = "Santarem" },
new WorldCity { Cap = false, Pop = 0.053, Lat = -46.4099998474121, Lon = 168.449996948242, Country = "New Zealand", Name = "Invercargill" },
new WorldCity { Cap = false, Pop = 0.049, Lat = -10.2600002288818, Lon = 40.1800003051758, Country = "Tanzania", Name = "Mtwara" },
new WorldCity { Cap = false, Pop = 0.100, Lat = -18.2299995422363, Lon = 49.4099998474121, Country = "Madagascar", Name = "Toamasina" },
new WorldCity { Cap = false, Pop = 0.235, Lat = -29.1499996185303, Lon = 26.2600002288818, Country = "South Africa", Name = "Bloemfontein" },
new WorldCity { Cap = false, Pop = 0.414, Lat = -20.2000007629395, Lon = 28.7099990844727, Country = "Zimbabwe", Name = "Bulawayo" },
new WorldCity { Cap = false, Pop = 0.061, Lat = -17.8299999237061, Lon = 25.8799991607666, Country = "Zambia", Name = "Livingstone" },
new WorldCity { Cap = false, Pop = 0.290, Lat = 24.4300003051758, Lon = 39.7000007629395, Country = "Saudi Arabia", Name = "Al Madinah" },
new WorldCity { Cap = false, Pop = 0.000, Lat = 21.7600002288818, Lon = 31.2800006866455, Country = "Sudan", Name = "Wadi Halfa" },
new WorldCity { Cap = false, Pop = 0.191, Lat = 24.0799999237061, Lon = 32.9500007629395, Country = "Egypt", Name = "Aswan" },
new WorldCity { Cap = false, Pop = 0.000, Lat = 25.9099998474121, Lon = 13.9099998474121, Country = "Libya", Name = "Murzuq" },
new WorldCity { Cap = false, Pop = 0.000, Lat = 27.7000007629395, Lon = -8.15999984741211, Country = "Algeria", Name = "Tindouf" },
new WorldCity { Cap = false, Pop = 0.050, Lat = 16.9599990844727, Lon = 7.98000001907349, Country = "Niger", Name = "Agadez" },
new WorldCity { Cap = false, Pop = 0.140, Lat = 13.1800003051758, Lon = 30.1599998474121, Country = "Sudan", Name = "El Obeid" },
new WorldCity { Cap = false, Pop = 0.125, Lat = 0.0500000007450581, Lon = 18.4599990844727, Country = "Zaire", Name = "Mbandaka" },
new WorldCity { Cap = false, Pop = 0.015, Lat = 60.6500015258789, Lon = -135.009994506836, Country = "Canada", Name = "Whitehorse" },
new WorldCity { Cap = false, Pop = 0.095, Lat = -53.1500015258789, Lon = -70.8000030517578, Country = "Chile", Name = "Punte Arenas" },
new WorldCity { Cap = false, Pop = 0.084, Lat = -41.4799995422363, Lon = -73, Country = "Chile", Name = "Puerto Montt" },
new WorldCity { Cap = false, Pop = 0.000, Lat = -51.7099990844727, Lon = -69.4100036621094, Country = "Argentina", Name = "Rio Gallegos" },
new WorldCity { Cap = false, Pop = 0.097, Lat = -45.8300018310547, Lon = -67.5, Country = "Argentina", Name = "Comodoro Rivadavia" },
new WorldCity { Cap = false, Pop = 0.327, Lat = 29.9599990844727, Lon = 32.560001373291, Country = "Egypt", Name = "Suez" },
new WorldCity { Cap = false, Pop = 3.350, Lat = 31.0746040344238, Lon = 29.9778099060059, Country = "Egypt", Name = "Alexandria" },
new WorldCity { Cap = false, Pop = 0.000, Lat = -15.0500001907349, Lon = 40.7000007629395, Country = "Mozambique", Name = "Mocambique" },
new WorldCity { Cap = false, Pop = 9.950, Lat = 19.0453472137451, Lon = 73.1723480224609, Country = "India", Name = "Bombay" },
new WorldCity { Cap = true, Pop = 2.548, Lat = 36.596492767334, Lon = 2.99369311332703, Country = "Algeria", Name = "Algiers" },
new WorldCity { Cap = false, Pop = 1.940, Lat = 49.989673614502, Lon = 36.2083129882813, Country = "Ukraine", Name = "Kharkov" },
new WorldCity { Cap = false, Pop = 1.600, Lat = 48.4228897094727, Lon = 35.1378936767578, Country = "Ukraine", Name = "Dnepropetrovsk" },
new WorldCity { Cap = true, Pop = 0.482, Lat = 59.2775726318359, Lon = 24.7520561218262, Country = "Estonia", Name = "Tallinn" },
new WorldCity { Cap = false, Pop = 0.000, Lat = 47.810001373291, Lon = 97, Country = "Mongolia", Name = "Uliastay" },
new WorldCity { Cap = true, Pop = 1.313, Lat = 18.4997291564941, Lon = -69.9104919433594, Country = "Dominican Rp", Name = "Santo Domingo" },
new WorldCity { Cap = true, Pop = 0.064, Lat = 4.93300008773804, Lon = 114.967002868652, Country = "Brunei", Name = "Bandar Seri Begawan" },
new WorldCity { Cap = true, Pop = 0.095, Lat = 13.4452724456787, Lon = -16.4946155548096, Country = "Gambia", Name = "Banjul" },
new WorldCity { Cap = true, Pop = 0.370, Lat = 10.6397342681885, Lon = -61.490062713623, Country = "Trinidad", Name = "Port of Spain" },
new WorldCity { Cap = false, Pop = 0.302, Lat = 16.97438621521, Lon = -99.9314956665039, Country = "Mexico", Name = "Acapulco" },
new WorldCity { Cap = false, Pop = 0.000, Lat = 64.4001617431641, Lon = 177.130187988281, Country = "Russia", Name = "Anadyr" },
new WorldCity { Cap = false, Pop = 0.003, Lat = 65.6699981689453, Lon = -37.3118667602539, Country = "Greenland", Name = "Angmagssalik" },
new WorldCity { Cap = false, Pop = 0.185, Lat = -23.8325366973877, Lon = -70.2254486083984, Country = "Chile", Name = "Antofagasta" },
new WorldCity { Cap = false, Pop = 0.294, Lat = 40.75, Lon = 140.669998168945, Country = "Japan", Name = "Aomori" },
new WorldCity { Cap = false, Pop = 0.436, Lat = 32.0430526733398, Lon = 20.3086757659912, Country = "Libya", Name = "Banghazi" },
new WorldCity { Cap = false, Pop = 0.000, Lat = -15.75, Lon = 133.220001220703, Country = "Australia", Name = "Birdum" },
new WorldCity { Cap = false, Pop = 0.000, Lat = 2.75, Lon = -60.5, Country = "Brazil", Name = "Boa Vista" },
new WorldCity { Cap = false, Pop = 0.280, Lat = -6.61999988555908, Lon = -79.8300018310547, Country = "Peru", Name = "Chiclayo" },
new WorldCity { Cap = false, Pop = 0.223, Lat = -8.930100440979, Lon = -78.4531478881836, Country = "Peru", Name = "Chimbote" },
new WorldCity { Cap = false, Pop = 0.001, Lat = 58.710765838623, Lon = -94.1800003051758, Country = "Canada", Name = "Churchill" },
new WorldCity { Cap = false, Pop = 0.686, Lat = 9.98798847198486, Lon = 76.5217819213867, Country = "India", Name = "Cochin" },
new WorldCity { Cap = false, Pop = 0.675, Lat = -36.8832969665527, Lon = -72.8516387939453, Country = "Chile", Name = "Concepcion" },
new WorldCity { Cap = false, Pop = 0.062, Lat = -31, Lon = -71.0199966430664, Country = "Chile", Name = "Coquimbo" },
new WorldCity { Cap = false, Pop = 0.073, Lat = -12.7014999389648, Lon = 130.994552612305, Country = "Australia", Name = "Darwin" },
new WorldCity { Cap = true, Pop = 0.120, Lat = 11.5, Lon = 43.0999984741211, Country = "Djibouti", Name = "Djibouti" },
new WorldCity { Cap = false, Pop = 0.022, Lat = -32.0441665649414, Lon = 115.9345703125, Country = "Australia", Name = "Fremantle" },
new WorldCity { Cap = false, Pop = 0.495, Lat = 5.34999990463257, Lon = 100.547142028809, Country = "Malaysia", Name = "George Town" },
new WorldCity { Cap = false, Pop = 0.001, Lat = 69.3831405639648, Lon = -53.6300010681152, Country = "Greenland", Name = "Godhavn" },
new WorldCity { Cap = true, Pop = 0.012, Lat = 64.2711868286133, Lon = -51.5800018310547, Country = "Greenland", Name = "Godthab" },
new WorldCity { Cap = false, Pop = 0.296, Lat = 44.6300010681152, Lon = -63.5800018310547, Country = "Canada", Name = "Halifax" },
new WorldCity { Cap = false, Pop = 0.007, Lat = 70.3913269042969, Lon = 23.9063415527344, Country = "Norway", Name = "Hammerfest" },
new WorldCity { Cap = false, Pop = 0.000, Lat = 67.3499984741211, Lon = 86.5500030517578, Country = "Russia", Name = "Igarka" },
new WorldCity { Cap = false, Pop = 0.019, Lat = 27.2000007629395, Lon = 2.52999997138977, Country = "Algeria", Name = "In Salah" },
new WorldCity { Cap = false, Pop = 0.003, Lat = 68.2699966430664, Lon = -133.669998168945, Country = "Canada", Name = "Inuvik" },
new WorldCity { Cap = false, Pop = 0.050, Lat = -4.94999980926514, Lon = 30, Country = "Tanzania", Name = "Kigoma" },
new WorldCity { Cap = false, Pop = 0.069, Lat = 61.1500015258789, Lon = 47, Country = "Russia", Name = "Kotlas" },
new WorldCity { Cap = false, Pop = 0.094, Lat = 27, Lon = -13.1800003051758, Country = "W Sahara", Name = "Laayoune" },
new WorldCity { Cap = false, Pop = 0.217, Lat = 1.420086145401, Lon = 124.884239196777, Country = "Indonesia", Name = "Manado" },
new WorldCity { Cap = false, Pop = 0.306, Lat = 12.9499998092651, Lon = 75.1608810424805, Country = "India", Name = "Mangalore" },
new WorldCity { Cap = false, Pop = 0.535, Lat = 31.1499996185303, Lon = -8, Country = "Morocco", Name = "Marrakech" },
new WorldCity { Cap = true, Pop = 0.038, Lat = -26.3033809661865, Lon = 31.1912975311279, Country = "Swaziland", Name = "Mbabne" },
new WorldCity { Cap = false, Pop = 0.449, Lat = 32.8827476501465, Lon = 129.857467651367, Country = "Japan", Name = "Nagasaki" },
new WorldCity { Cap = false, Pop = 0.510, Lat = -5.78000020980835, Lon = -35.25, Country = "Brazil", Name = "Natal" },
new WorldCity { Cap = false, Pop = 0.033, Lat = -41.2999992370605, Lon = 173.270004272461, Country = "New Zealand", Name = "Nelson" },
new WorldCity { Cap = false, Pop = 0.004, Lat = 64.5862808227539, Lon = -165.270004272461, Country = "US", Name = "Nome" },
new WorldCity { Cap = false, Pop = 0.174, Lat = 69.3300018310547, Lon = 88.0999984741211, Country = "Russia", Name = "Noril`sk" },
new WorldCity { Cap = false, Pop = 0.022, Lat = 20.8999996185303, Lon = -16.825647354126, Country = "Mauritania", Name = "Nouadnibou" },
new WorldCity { Cap = false, Pop = 0.600, Lat = 53.7000007629395, Lon = 87.1699981689453, Country = "Russia", Name = "Novokuznetsk" },
new WorldCity { Cap = false, Pop = 0.097, Lat = 46.9199981689453, Lon = -122.879997253418, Country = "US", Name = "Olympia" },
new WorldCity { Cap = false, Pop = 0.297, Lat = -0.917578816413879, Lon = 100.475059509277, Country = "Indonesia", Name = "Padang" },
new WorldCity { Cap = false, Pop = 0.787, Lat = -3, Lon = 104.830001831055, Country = "Indonesia", Name = "Palembang" },
new WorldCity { Cap = false, Pop = 0.155, Lat = 38.1412391662598, Lon = 21.8831691741943, Country = "Greece", Name = "Patras" },
new WorldCity { Cap = false, Pop = 0.269, Lat = 53.2000007629395, Lon = 158.720001220703, Country = "Russia", Name = "Petropavloski-Kamchatskiy" },
new WorldCity { Cap = true, Pop = 0.083, Lat = 42.5, Lon = 19.3999996185303, Country = "Montenegro", Name = "Podgorica" },
new WorldCity { Cap = false, Pop = 0.294, Lat = -4.63870811462402, Lon = 12.0580930709839, Country = "Congo", Name = "Pointe Noire" },
new WorldCity { Cap = false, Pop = 0.124, Lat = -0.819999992847443, Lon = 9.15334415435791, Country = "Gabon", Name = "Port Gentil" },
new WorldCity { Cap = false, Pop = 0.016, Lat = 54.420280456543, Lon = -130.048080444336, Country = "Canada", Name = "Prince Rupert" },
new WorldCity { Cap = false, Pop = 0.121, Lat = 45.338134765625, Lon = -65.6499481201172, Country = "Canada", Name = "Saint John" },
new WorldCity { Cap = false, Pop = 0.091, Lat = 15.9512100219727, Lon = -16.2978382110596, Country = "Senegal", Name = "Saint Louis" },
new WorldCity { Cap = false, Pop = 0.000, Lat = 66.5699996948242, Lon = 66.5800018310547, Country = "Russia", Name = "Salekhard" },
new WorldCity { Cap = false, Pop = 0.241, Lat = 41.3199996948242, Lon = 36.3699989318848, Country = "Turkey", Name = "Samsun" },
new WorldCity { Cap = false, Pop = 0.600, Lat = -2.5, Lon = -44.4300575256348, Country = "Brazil", Name = "Sao Luis" },
new WorldCity { Cap = true, Pop = 0.341, Lat = 43.8699989318848, Lon = 18.4300003051758, Country = "Bosnia/Herz", Name = "Sarajevo" },
new WorldCity { Cap = false, Pop = 0.000, Lat = 70.5285720825195, Lon = -22.9963226318359, Country = "Greenland", Name = "Scoresbyund" },
new WorldCity { Cap = false, Pop = 0.029, Lat = 50.2825469970703, Lon = -66.4025421142578, Country = "Canada", Name = "Sept-Iles" },
new WorldCity { Cap = false, Pop = 0.003, Lat = 60.1199989318848, Lon = -149.449996948242, Country = "US", Name = "Seward" },
new WorldCity { Cap = true, Pop = 0.445, Lat = 42, Lon = 21.5300006866455, Country = "Macedonia", Name = "Skopje" },
new WorldCity { Cap = false, Pop = 0.000, Lat = 22.8299999237061, Lon = 5.55000019073486, Country = "Algeria", Name = "Tamanrasset" },
new WorldCity { Cap = false, Pop = 0.000, Lat = 77.6699981689453, Lon = -69, Country = "Greenland", Name = "Thule" },
new WorldCity { Cap = false, Pop = 0.000, Lat = 71.6999969482422, Lon = 128.75, Country = "Russia", Name = "Tiksi" },
new WorldCity { Cap = false, Pop = 0.055, Lat = -23.2901554107666, Lon = 44.0190925598145, Country = "Madagascar", Name = "Toliara" },
new WorldCity { Cap = false, Pop = 0.354, Lat = -7.92999982833862, Lon = -79, Country = "Peru", Name = "Trujillo" },
new WorldCity { Cap = false, Pop = 0.604, Lat = 17.75, Lon = 83.3300018310547, Country = "India", Name = "Vishakhapatnam" },
new WorldCity { Cap = false, Pop = 0.116, Lat = 67.8000030517578, Lon = 64.3300018310547, Country = "Russia", Name = "Vorkuta" },
new WorldCity { Cap = false, Pop = 0.230, Lat = 31.9699993133545, Lon = 54.4500007629395, Country = "Iran", Name = "Yazd" },
new WorldCity { Cap = false, Pop = 0.282, Lat = 29.6000003814697, Lon = 60.8300018310547, Country = "Iran", Name = "Zahedan" },
new WorldCity { Cap = false, Pop = 0.318, Lat = 12.861159324646, Lon = 45.1800003051758, Country = "Yemen", Name = "Aden" },
new WorldCity { Cap = true, Pop = 1.500, Lat = 9.02999973297119, Lon = 38.7000007629395, Country = "Ethiopia", Name = "Adis Abeba" },
new WorldCity { Cap = true, Pop = 1.375, Lat = 29.1949901580811, Lon = 48.0027770996094, Country = "Kuwait", Name = "Al Kuwayt" },
new WorldCity { Cap = true, Pop = 0.663, Lat = -18.8700008392334, Lon = 47.5, Country = "Madagascar", Name = "Antananarivo" },
new WorldCity { Cap = true, Pop = 1.250, Lat = 24.6499996185303, Lon = 46.7700004577637, Country = "Saudi Arabia", Name = "Ar Riyad" },
new WorldCity { Cap = true, Pop = 0.275, Lat = 15.3299999237061, Lon = 38.9700012207031, Country = "Eritrea", Name = "Asmara" },
new WorldCity { Cap = true, Pop = 0.700, Lat = -25.2199993133545, Lon = -57.6699981689453, Country = "Paraguay", Name = "Asuncion" },
new WorldCity { Cap = true, Pop = 3.027, Lat = 38.1216011047363, Lon = 23.6548633575439, Country = "Greece", Name = "Athens" },
new WorldCity { Cap = false, Pop = 1.120, Lat = 40.6500015258789, Lon = 109.980003356934, Country = "China", Name = "Baotou" },
new WorldCity { Cap = false, Pop = 4.040, Lat = 41.5299987792969, Lon = 2.17000007629395, Country = "Spain", Name = "Barcelona" },
new WorldCity { Cap = false, Pop = 1.140, Lat = 11.0142946243286, Lon = -74.6800003051758, Country = "Colombia", Name = "Barranquilla" },
new WorldCity { Cap = false, Pop = 0.292, Lat = -19.7692832946777, Lon = 35.0231704711914, Country = "Mozambique", Name = "Beira" },
new WorldCity { Cap = true, Pop = 1.675, Lat = 33.7799987792969, Lon = 35.6579437255859, Country = "Lebanon", Name = "Beirut" },
new WorldCity { Cap = true, Pop = 0.005, Lat = 17.1200008392334, Lon = -88.8000030517578, Country = "Belize", Name = "Belmopan" },
new WorldCity { Cap = false, Pop = 0.239, Lat = 60.3499984741211, Lon = 5.49067831039429, Country = "Norway", Name = "Bergen" },
new WorldCity { Cap = true, Pop = 0.109, Lat = 11.9109897613525, Lon = -15.6499996185303, Country = "GuineaBissau", Name = "Bissau" },
new WorldCity { Cap = false, Pop = 1.790, Lat = -33.8040084838867, Lon = 18.6904315948486, Country = "South Africa", Name = "cape Town" },
new WorldCity { Cap = false, Pop = 0.625, Lat = 51.5, Lon = -3.15000009536743, Country = "UK", Name = "Cardiff" },
new WorldCity { Cap = false, Pop = 2.475, Lat = 33.5444107055664, Lon = -7.53409194946289, Country = "Morocco", Name = "Casablanca" },
new WorldCity { Cap = true, Pop = 0.038, Lat = 4.92000007629395, Lon = -52.4000015258789, Country = "Fr Guiana", Name = "Cayenne" },
new WorldCity { Cap = false, Pop = 1.392, Lat = 22.4799995422363, Lon = 91.8327941894531, Country = "Bangladesh", Name = "Chittagong" },
new WorldCity { Cap = true, Pop = 2.050, Lat = 7.01999998092651, Lon = 80.0883331298828, Country = "Sri Lanka", Name = "Colombo" },
new WorldCity { Cap = true, Pop = 0.800, Lat = 9.52000045776367, Lon = -12.8000001907349, Country = "Guinea", Name = "Conakry" },
new WorldCity { Cap = true, Pop = 1.428, Lat = 14.6300001144409, Lon = -16.8480949401855, Country = "Senegal", Name = "Dakar" },
new WorldCity { Cap = false, Pop = 1.405, Lat = 39.75, Lon = -105.069999694824, Country = "US", Name = "Denver" },
new WorldCity { Cap = true, Pop = 0.595, Lat = 38.6300010681152, Lon = 68.9000015258789, Country = "Tajikistan", Name = "Dushanfe" },
new WorldCity { Cap = false, Pop = 0.785, Lat = 53.5699996948242, Lon = -113.269996643066, Country = "Canada", Name = "Edmonton" },
new WorldCity { Cap = false, Pop = 1.871, Lat = 30.4699993133545, Lon = 30.8500003814697, Country = "Egypt", Name = "Giza" },
new WorldCity { Cap = true, Pop = 0.525, Lat = 8.38277053833008, Lon = -12.9102764129639, Country = "Sierra Leone", Name = "Freetown" },
new WorldCity { Cap = true, Pop = 0.616, Lat = 42.8800010681152, Lon = 74.7699966430664, Country = "Kyrgyzstan", Name = "Frunze" },
new WorldCity { Cap = false, Pop = 0.805, Lat = 44.4550895690918, Lon = 8.92229557037354, Country = "Italy", Name = "Genova" },
new WorldCity { Cap = true, Pop = 0.188, Lat = 6.76999998092651, Lon = -58.1699981689453, Country = "Guyana", Name = "Georgetown" },
new WorldCity { Cap = false, Pop = 0.711, Lat = 57.75, Lon = 12, Country = "Sweden", Name = "Goteborg" },
new WorldCity { Cap = true, Pop = 0.890, Lat = -17.8299999237061, Lon = 31.0200004577637, Country = "Zimbabwe", Name = "Harare" },
new WorldCity { Cap = true, Pop = 2.125, Lat = 23.0489521026611, Lon = -82.4164505004883, Country = "Cuba", Name = "Havana" },
new WorldCity { Cap = false, Pop = 1.300, Lat = 21.6200008392334, Lon = 39.3733062744141, Country = "Saudi Arabia", Name = "Jiddah" },
new WorldCity { Cap = true, Pop = 0.460, Lat = 0.319999992847443, Lon = 32.5800018310547, Country = "Uganda", Name = "Kampala" },
new WorldCity { Cap = false, Pop = 0.538, Lat = 11.9200000762939, Lon = 8.52000045776367, Country = "Nigeria", Name = "Kano" },
new WorldCity { Cap = false, Pop = 1.845, Lat = 22.6734161376953, Lon = 120.341484069824, Country = "Taiwan", Name = "Kao-Hsiung" },
new WorldCity { Cap = false, Pop = 5.300, Lat = 24.8500003814697, Lon = 67.0299987792969, Country = "Pakistan", Name = "Karachi" },
new WorldCity { Cap = false, Pop = 0.601, Lat = 48.5299987792969, Lon = 135.070007324219, Country = "Russia", Name = "Khabarovsk" },
new WorldCity { Cap = true, Pop = 0.924, Lat = 15.5500001907349, Lon = 32.5299987792969, Country = "Sudan", Name = "Khartoum" },
new WorldCity { Cap = true, Pop = 0.665, Lat = 47, Lon = 28.8299999237061, Country = "Moldova", Name = "Kishinev" },
new WorldCity { Cap = true, Pop = 1.685, Lat = 55.7200012207031, Lon = 12.5500001907349, Country = "Denmark", Name = "Kobenhavn" },
new WorldCity { Cap = true, Pop = 3.800, Lat = 6.44999980926514, Lon = 3.29999995231628, Country = "Nigeria", Name = "Lagos" },
new WorldCity { Cap = false, Pop = 0.255, Lat = 49.3240203857422, Lon = 0.219999998807907, Country = "France", Name = "Le Havre" },
new WorldCity { Cap = true, Pop = 0.236, Lat = -0.504144549369812, Lon = 9.49045658111572, Country = "Gabon", Name = "Libreville" },
new WorldCity { Cap = true, Pop = 0.234, Lat = -13.9200000762939, Lon = 33.8199996948242, Country = "Malawi", Name = "Lilongwe" },
new WorldCity { Cap = true, Pop = 4.344, Lat = -12.0679960250854, Lon = -76.8235549926758, Country = "Peru", Name = "Lima" },
new WorldCity { Cap = true, Pop = 2.250, Lat = 38.7299995422363, Lon = -9.13000011444092, Country = "Portugal", Name = "Lisboa" },
new WorldCity { Cap = false, Pop = 1.525, Lat = 53.4226875305176, Lon = -2.76683640480042, Country = "UK", Name = "Liverpool" },
new WorldCity { Cap = true, Pop = 0.400, Lat = 6.28000020980835, Lon = 1.35000002384186, Country = "Togo", Name = "Lome" },
new WorldCity { Cap = false, Pop = 9.764, Lat = 34, Lon = -118.25, Country = "US", Name = "Los Angeles" },
new WorldCity { Cap = true, Pop = 1.460, Lat = -9, Lon = 13.4617786407471, Country = "Angola", Name = "Luanda" },
new WorldCity { Cap = false, Pop = 0.543, Lat = -11.6800003051758, Lon = 27.5499992370605, Country = "Zaire", Name = "Lumumbashi" },
new WorldCity { Cap = true, Pop = 0.536, Lat = -15.4300003051758, Lon = 28.1700000762939, Country = "Zambia", Name = "Lusaka" },
new WorldCity { Cap = true, Pop = 0.031, Lat = 3.64468479156494, Lon = 8.81999969482422, Country = "Eq Guinea", Name = "Malabo" },
new WorldCity { Cap = true, Pop = 5.474, Lat = 14.5500001907349, Lon = 121.173408508301, Country = "Philippines", Name = "Manila" },
new WorldCity { Cap = false, Pop = 1.225, Lat = 43.2999992370605, Lon = 5.38000011444092, Country = "France", Name = "Marseille" },
new WorldCity { Cap = true, Pop = 0.050, Lat = 23.5166397094727, Lon = 58.6274795532227, Country = "Oman", Name = "Masqat" },
new WorldCity { Cap = false, Pop = 0.200, Lat = 23.3615112304688, Lon = -106.269996643066, Country = "Mexico", Name = "Mazatlan" },
new WorldCity { Cap = false, Pop = 0.442, Lat = -4.01999998092651, Lon = 39.6699981689453, Country = "Kenya", Name = "Mombasa" },
new WorldCity { Cap = true, Pop = 0.465, Lat = 6.51743936538696, Lon = -10.7700004577637, Country = "Liberia", Name = "Monrovia" },
new WorldCity { Cap = true, Pop = 1.550, Lat = -34.9199981689453, Lon = -56.1699981689453, Country = "Uruguay", Name = "Montevideo" },
new WorldCity { Cap = true, Pop = 13.100, Lat = 55.75, Lon = 37.7000007629395, Country = "Russia", Name = "Moscow" },
new WorldCity { Cap = true, Pop = 1.286, Lat = -1.16999995708466, Lon = 36.8300018310547, Country = "Kenya", Name = "Nairobi" },
new WorldCity { Cap = false, Pop = 2.875, Lat = 40.8300018310547, Lon = 14.2700004577637, Country = "Italy", Name = "Napoli" },
new WorldCity { Cap = false, Pop = 16.472, Lat = 40.75, Lon = -74.0999984741211, Country = "US", Name = "New York" },
new WorldCity { Cap = false, Pop = 0.329, Lat = 40.7200012207031, Lon = -74.1999969482422, Country = "US", Name = "Newark" },
new WorldCity { Cap = true, Pop = 0.285, Lat = 18.0300006866455, Lon = -15.7828607559204, Country = "Mauritania", Name = "Nouakchott" },
new WorldCity { Cap = false, Pop = 0.138, Lat = 55.574535369873, Lon = 9.90299892425537, Country = "Denmark", Name = "Odense" },
new WorldCity { Cap = false, Pop = 0.526, Lat = 15.6199998855591, Lon = 32.4799995422363, Country = "Sudan", Name = "Omdurman" },
new WorldCity { Cap = false, Pop = 0.629, Lat = 35.75, Lon = -0.519999980926514, Country = "Algeria", Name = "Oran" },
new WorldCity { Cap = true, Pop = 0.720, Lat = 59.9300003051758, Lon = 10.7200002670288, Country = "Norway", Name = "Oslo" },
new WorldCity { Cap = true, Pop = 0.442, Lat = 12.4799995422363, Lon = -1.66999995708466, Country = "Burkina Faso", Name = "Ouagadouou" },
new WorldCity { Cap = false, Pop = 0.724, Lat = 38.1300010681152, Lon = 13.3999996185303, Country = "Italy", Name = "Palermo" },
new WorldCity { Cap = true, Pop = 0.625, Lat = 8.94999980926514, Lon = -79.4000015258789, Country = "Panama", Name = "Panama" },
new WorldCity { Cap = true, Pop = 0.241, Lat = 5.92999982833862, Lon = -55.2299995422363, Country = "Suriname", Name = "Paramaribo" },
new WorldCity { Cap = false, Pop = 0.994, Lat = -31.9758644104004, Lon = 115.923370361328, Country = "Australia", Name = "Perth" },
new WorldCity { Cap = true, Pop = 0.152, Lat = -9.55000019073486, Lon = 147.414520263672, Country = "Papua N Guin", Name = "Port Moresby" },
new WorldCity { Cap = false, Pop = 1.225, Lat = 41.1500015258789, Lon = -8.48794841766357, Country = "Portugal", Name = "Porto" },
new WorldCity { Cap = false, Pop = 0.203, Lat = 31.6000003814697, Lon = 65.5, Country = "Afghanistan", Name = "Qandahar" },
new WorldCity { Cap = false, Pop = 1.326, Lat = 14.6499996185303, Lon = 121.029998779297, Country = "Philippines", Name = "Quezon City" },
new WorldCity { Cap = true, Pop = 0.980, Lat = 33.9201965332031, Lon = -6.74804067611694, Country = "Morocco", Name = "Rabat" },
new WorldCity { Cap = true, Pop = 0.138, Lat = 64.3132629394531, Lon = -21.336820602417, Country = "Iceland", Name = "Reykjavik" },
new WorldCity { Cap = true, Pop = 1.005, Lat = 56.8800010681152, Lon = 24.0499992370605, Country = "latvia", Name = "Riga" },
new WorldCity { Cap = true, Pop = 3.175, Lat = 41.8800010681152, Lon = 12.5200004577637, Country = "Italy", Name = "Roma" },
new WorldCity { Cap = false, Pop = 2.050, Lat = -12.6002569198608, Lon = -38.4799995422363, Country = "Brazil", Name = "Salvador" },
new WorldCity { Cap = false, Pop = 0.848, Lat = 29.6299991607666, Lon = 52.5699996948242, Country = "Iran", Name = "Shiraz" },
new WorldCity { Cap = true, Pop = 1.450, Lat = 59.2446327209473, Lon = 18.0842685699463, Country = "Sweden", Name = "Stockholm" },
new WorldCity { Cap = false, Pop = 2.028, Lat = -7.40000009536743, Lon = 112.684371948242, Country = "Indonesia", Name = "Surabaja" },
new WorldCity { Cap = false, Pop = 0.657, Lat = 23.1700000762939, Lon = 120.230003356934, Country = "Taiwan", Name = "T`ai-nan" },
new WorldCity { Cap = false, Pop = 0.595, Lat = 27.9973583221436, Lon = -82.5930252075195, Country = "US", Name = "Tampa" },
new WorldCity { Cap = true, Pop = 1.670, Lat = 31.9171981811523, Lon = 34.8568344116211, Country = "Israel", Name = "Tel Aviv-Yafo" },
new WorldCity { Cap = false, Pop = 0.706, Lat = 40.6300010681152, Lon = 22.7999992370605, Country = "Greece", Name = "Thessaloniki" },
new WorldCity { Cap = true, Pop = 2.325, Lat = 41.247932434082, Lon = 69.3498687744141, Country = "Uzbekistan", Name = "Toshkent" },
new WorldCity { Cap = false, Pop = 0.198, Lat = 34.3437576293945, Lon = 36.0070686340332, Country = "Lebanon", Name = "Tripoli" },
new WorldCity { Cap = false, Pop = 0.675, Lat = -32.9000015258789, Lon = -71.2993392944336, Country = "Chile", Name = "Valparaiso" },
new WorldCity { Cap = false, Pop = 1.381, Lat = 49.274299621582, Lon = -122.963066101074, Country = "Canada", Name = "Vancouver" },
new WorldCity { Cap = false, Pop = 0.648, Lat = 43.1300010681152, Lon = 131.960433959961, Country = "Russia", Name = "Vladivostok" },
new WorldCity { Cap = false, Pop = 0.017, Lat = -23.1018676757813, Lon = 14.6171045303345, Country = "Namibia", Name = "Walvis Bay" },
new WorldCity { Cap = true, Pop = 0.115, Lat = -22.5699996948242, Lon = 17.1000003814697, Country = "Namibia", Name = "Windhoek" },
new WorldCity { Cap = true, Pop = 0.350, Lat = -41.2103958129883, Lon = 175.144943237305, Country = "New Zealand", Name = "Wellington" },
new WorldCity { Cap = false, Pop = 2.077, Lat = 47.5885543823242, Lon = -122.316650390625, Country = "US", Name = "Seattle" },
new WorldCity { Cap = false, Pop = 2.099, Lat = 32.7614593505859, Lon = -117.125495910645, Country = "US", Name = "San Diego" },
new WorldCity { Cap = false, Pop = 0.110, Lat = -20.2600002288818, Lon = -69.9132614135742, Country = "Chile", Name = "Iquique" },
new WorldCity { Cap = true, Pop = 0.243, Lat = 24.2360076904297, Lon = 54.619270324707, Country = "Untd Arab Em", Name = "Abu Zaby" },
new WorldCity { Cap = false, Pop = 0.199, Lat = 7.57660102844238, Lon = -72.0054550170898, Country = "Venezuela", Name = "San Cristobal" },
new WorldCity { Cap = false, Pop = 0.509, Lat = 46.25, Lon = 48, Country = "Russia", Name = "Astrakhan" },
new WorldCity { Cap = false, Pop = 0.000, Lat = 30.1386032104492, Lon = 9.81835079193115, Country = "Libya", Name = "Ghadamis" },
new WorldCity { Cap = false, Pop = 0.077, Lat = -31.3051528930664, Lon = -57.7087745666504, Country = "Uruguay", Name = "Salto" },
new WorldCity { Cap = false, Pop = 0.012, Lat = 62.5206146240234, Lon = -114.061363220215, Country = "Canada", Name = "Yellowknife" },
new WorldCity { Cap = false, Pop = 0.043, Lat = 19.7148151397705, Lon = -155.067291259766, Country = "US", Name = "Hilo" },
new WorldCity { Cap = false, Pop = 0.763, Lat = 21.3211765289307, Lon = -157.806182861328, Country = "US", Name = "Honolulu" },
new WorldCity { Cap = false, Pop = 0.184, Lat = 61.188648223877, Lon = -149.172973632813, Country = "US", Name = "Anchorage" },
new WorldCity { Cap = false, Pop = 0.040, Lat = 64.8387451171875, Lon = -147.651184082031, Country = "US", Name = "Fairbanks" },
new WorldCity { Cap = false, Pop = 0.020, Lat = 58.3910064697266, Lon = -134.132476806641, Country = "US", Name = "Juneau" },
new WorldCity { Cap = false, Pop = 0.629, Lat = 37.30810546875, Lon = -121.847457885742, Country = "US", Name = "San Jose" },
new WorldCity { Cap = false, Pop = 0.386, Lat = 28.5581398010254, Lon = -105.966636657715, Country = "Mexico", Name = "Chihuaha" },
new WorldCity { Cap = false, Pop = 0.385, Lat = 19.0096759796143, Lon = -96.0840606689453, Country = "Mexico", Name = "Veracruz" },
new WorldCity { Cap = false, Pop = 0.154, Lat = 16.9209060668945, Lon = -96.9420394897461, Country = "Mexico", Name = "Oaxaca" },
new WorldCity { Cap = false, Pop = 0.000, Lat = 78.1999969482422, Lon = 15.6599998474121, Country = "Norway", Name = "longyearbyen" },
new WorldCity { Cap = true, Pop = 5.396, Lat = 22.4284057617188, Lon = 114.145706176758, Country = "UK", Name = "Hong Kong" },
new WorldCity { Cap = false, Pop = 0.775, Lat = 22.3798961639404, Lon = 114.230117797852, Country = "UK", Name = "Kowloon" },
new WorldCity { Cap = false, Pop = 3.025, Lat = 1.22979354858398, Lon = 104.177116394043, Country = "Singapore", Name = "Singapore" },
};
return cities;
}
}
}
// Data Source #5
using IgniteUI.Blazor.Controls;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
namespace Infragistics.Samples
{
public static class WorldUtils
{
public static List<List<Point>> CalcPaths(GeoLocation origin, GeoLocation dest)
{
int interval = 200;
var paths = new List<List<Point>>() { new List<Point>() };
int pathID = 0;
double distance = WorldUtils.CalcDistance(origin, dest);
if (distance <= interval)
{
paths[pathID].Add(new Point() { X = dest.Lon, Y = dest.Lat });
}
else
{
GeoLocation current = origin;
GeoLocation previous = origin;
for (int dist = interval; dist <= distance; dist += interval)
{
previous = current;
paths[pathID].Add(new Point() { X = current.Lon, Y = current.Lat });
double bearing = WorldUtils.CalcBearing(current, dest);
current = WorldUtils.CalcDestination(current, bearing, interval);
if (previous.Lon > 150 && current.Lon < -150)
{
paths[pathID].Add(new Point() { X = 180, Y = current.Lat });
paths.Add(new List<Point>());
pathID++;
current = new GeoLocation() { Lon = -180, Lat = current.Lat };
}
else if(previous.Lon < -150 && current.Lon > 150)
{
paths[pathID].Add(new Point() { X = -180, Y = current.Lat });
paths.Add(new List<Point>());
pathID++;
current = new GeoLocation() { Lon = 180, Lat = current.Lat };
}
}
paths[pathID].Add(new Point() { X = dest.Lon, Y = dest.Lat });
}
return paths;
}
public static double CalcBearing(GeoLocation origin, GeoLocation dest)
{
origin = WorldUtils.ToRadianLocation(origin);
dest = WorldUtils.ToRadianLocation(dest);
double range = (dest.Lon - origin.Lon);
double y = Math.Sin(range) * Math.Cos(dest.Lat);
double x = Math.Cos(origin.Lat) * Math.Sin(dest.Lat) - Math.Sin(origin.Lat) * Math.Cos(dest.Lat) * Math.Cos(range);
double angle = Math.Atan2(y, x);
return WorldUtils.ToDegreesNormalized(angle);
}
public static GeoLocation CalcDestination(GeoLocation origin, double bearing, double distance)
{
double radius = 6371.0;
origin = WorldUtils.ToRadianLocation(origin);
bearing = WorldUtils.ToRadians(bearing);
distance = distance / radius;
double lat = Math.Asin(Math.Sin(origin.Lat) * Math.Cos(distance) +
Math.Cos(origin.Lat) * Math.Sin(distance) * Math.Cos(bearing));
double x = Math.Sin(bearing) * Math.Sin(distance) * Math.Cos(origin.Lat);
double y = Math.Cos(distance) - Math.Sin(origin.Lat) * Math.Sin(origin.Lat);
double lon = origin.Lon + Math.Atan2(x, y);
// normalize lon to coordinate between -180º and +180º
lon = (lon + 3 * Math.PI) % (2 * Math.PI) - Math.PI;
lon = WorldUtils.ToDegrees(lon);
lat = WorldUtils.ToDegrees(lat);
return new GeoLocation() { Lat = lat, Lon = lon };
}
public static double CalcDistance(GeoLocation origin, GeoLocation dest)
{
origin = WorldUtils.ToRadianLocation(origin);
dest = WorldUtils.ToRadianLocation(dest);
double sinProd = Math.Sin(origin.Lat) * Math.Sin(dest.Lat);
double cosProd = Math.Cos(origin.Lat) * Math.Cos(dest.Lat);
double lonDelta = (dest.Lon - origin.Lon);
double angle = Math.Acos(sinProd + cosProd * Math.Cos(lonDelta));
double distance = angle * 6371.0;
return distance;
}
public static GeoLocation ToRadianLocation(GeoLocation geoPoint)
{
double x = WorldUtils.ToRadians(geoPoint.Lon);
double y = WorldUtils.ToRadians(geoPoint.Lat);
return new GeoLocation() { Lon = x, Lat = y };
}
public static double ToRadians(double degrees)
{
return degrees * Math.PI / 180;
}
public static double ToDegrees(double radians)
{
return (radians * 180.0 / Math.PI);
}
public static double ToDegreesNormalized(double radians)
{
double degrees = WorldUtils.ToDegrees(radians);
degrees = (degrees + 360) % 360;
return degrees;
}
public static string ToStringLat(double latitude)
{
string str = Math.Abs(latitude) + "°";
return latitude > 0 ? str + "N" : str + "S";
}
public static string ToStringLon(double coordinate)
{
double val = Math.Abs(coordinate);
string str = val.ToString();
return coordinate > 0 ? str + "°E" : str + "°W";
}
public static string ToStringAbbr(double value)
{
if (value > 1000000000000)
{
return (value / 1000000000000).ToString("N1") + " T";
}
else if (value > 1000000000)
{
return (value / 1000000000).ToString("N1") + " B";
}
else if (value > 1000000)
{
return (value / 1000000).ToString("N1") + " M";
}
else if (value > 1000)
{
return (value / 1000).ToString("N1") + " K";
}
return value.ToString("N0");
}
public static double GetLongitude(GeoLocation location)
{
return location.Lon;
}
public static double GetLatitude(GeoLocation location)
{
return location.Lat;
}
public static Rect GetBounds(List<GeoLocation> locations)
{
double minLat = 90;
double maxLat = -90;
double minLon = 180;
double maxLon = -180;
foreach(GeoLocation gl in locations)
{
double curLon = WorldUtils.GetLongitude(gl);
double curLat = WorldUtils.GetLatitude(gl);
if (!double.IsNaN(curLon))
{
minLon = Math.Min(minLon, curLon);
maxLon = Math.Max(maxLon, curLon);
}
if (!double.IsNaN(curLat))
{
minLat = Math.Min(minLat, curLat);
maxLat = Math.Min(maxLat, curLat);
}
}
Rect geoBounds = new Rect(minLon, minLat, Math.Abs(maxLon - minLon), Math.Abs(maxLat - minLat));
return geoBounds;
}
public static List<Point> GetNightShapes()
{
List<Point> line = new List<Point>();
for (int lon = -180; lon <= 180; lon += 1)
{
double x = lon;
double y = 75 * Math.Cos(lon * Math.PI / 180);
line.Add(new Point(x, y));
}
return line;
}
}
}
cs
@using IgniteUI.Blazor.Controls
<div class="container vertical">
<div class="container vertical">
<IgbGeographicMap Height="100%" Width="100%" Zoomable="true">
<IgbGeographicPolylineSeries DataSource="Flights" ShapeMemberPath="Points"
ShapeStroke="rgba(196, 14, 14, 0.2)" ShapeStrokeThickness="4" />
<IgbGeographicPolylineSeries DataSource="Coordinates" ShapeMemberPath="Points"
ShapeStroke="Gray" ShapeStrokeThickness="1">
</IgbGeographicPolylineSeries>
<IgbGeographicSymbolSeries DataSource="Airports" LatitudeMemberPath="Lat"
LongitudeMemberPath="Lon" MarkerType="MarkerType.Circle"
MarkerBrush="#AAD3DF" MarkerOutline="Black" Thickness="1" />
</IgbGeographicMap>
</div>
</div>
@code {
private List<WorldCity> Airports;
private List<FlightInfo> Flights;
private List<CoordinateLine> Coordinates;
protected override void OnInitialized()
{
Airports = WorldConnections.GetAirports();
Flights = WorldConnections.GetFlights();
Coordinates = WorldConnections.GetGridlines();
}
}
razor/*
CSS styles are loaded from the shared CSS file located at:
https://static.infragistics.com/xplatform/css/samples/
*/
css
This topic takes you step-by-step towards displaying multiple geographic series that will plot following geo-spatial data:
IgbGeographicSymbolSeries
– displays locations of major airportsIgbGeographicPolylineSeries
– displays flights between airportsIgbGeographicPolylineSeries
– displays gridlines of major coordinates
You can use geographic series in this or other combinations to plot desired data.
Creating Data Sources
Create data sources for all geographic series that you want to display in the Ignite UI for Blazor map. For example, you can the use WorldConnections script.
@code {
public List<WorldCity> Airports;
public List<FlightInfo> Flights;
public List<CoordinateLine> Coordinates;
protected override void OnInitialized()
{
Airports = WorldConnections.GetAirports();
Flights = WorldConnections.GetFlights();
Coordinates = WorldConnections.GetGridlines();
}
}
razor
Overlaying Flights
Create first IgbGeographicPolylineSeries
object with flight connections between major airports and add it to the Series collection of the Ignite UI for Blazor map.
<IgbGeographicMap Height="100%" Width="100%" Zoomable="true">
<IgbGeographicPolylineSeries DataSource="Flights" ShapeMemberPath="Points"
ShapeStroke="rgba(196, 14, 14, 0.05)" ShapeStrokeThickness="4" />
</IgbGeographicMap>
razor
Overlaying Gridlines
Create second IgbGeographicPolylineSeries
object with geographic gridlines and add it to the Series collection of the Ignite UI for Blazor map.
<IgbGeographicMap Height="100%" Width="100%" Zoomable="true">
<IgbGeographicPolylineSeries DataSource="Coordinates" ShapeMemberPath="Points"
ShapeStroke="Gray" ShapeStrokeThickness="1" />
</IgbGeographicMap>
razor
Overlaying Airports
Create IgbGeographicSymbolSeries
object with airport points and add it to the Series collection of the geographic Ignite UI for Blazor map.
<IgbGeographicMap Height="100%" Width="100%" Zoomable="true">
<IgbGeographicSymbolSeries DataSource="Airports" LatitudeMemberPath="Lat"
LongitudeMemberPath="Lon" MarkerType="MarkerType.Circle"
MarkerBrush="#AAD3DF" MarkerOutline="Black" Thickness="1" />
</IgbGeographicMap>
razor
Summary
For your convenience, all above code snippets are combined into one code block below that you can easily copy to your project.
@using IgniteUI.Blazor.Controls
<IgbGeographicMap Height="100%" Width="100%" Zoomable="true">
<IgbGeographicPolylineSeries DataSource="Flights" ShapeMemberPath="Points"
ShapeStroke="rgba(196, 14, 14, 0.05)" ShapeStrokeThickness="4" />
<IgbGeographicPolylineSeries DataSource="Coordinates" ShapeMemberPath="Points"
ShapeStroke="Gray" ShapeStrokeThickness="1">
</IgbGeographicPolylineSeries>
<IgbGeographicSymbolSeries DataSource="Airports" LatitudeMemberPath="Lat"
LongitudeMemberPath="Lon" MarkerType="MarkerType.Circle"
MarkerBrush="#AAD3DF" MarkerOutline="Black" Thickness="1" />
</IgbGeographicMap>
@code {
private List<WorldCity> Airports;
private List<FlightInfo> Flights;
private List<CoordinateLine> Coordinates;
protected override void OnInitialized()
{
Airports = WorldConnections.GetAirports();
Flights = WorldConnections.GetFlights();
Coordinates = WorldConnections.GetGridlines();
}
}
razor