Blazor Binding Geographic Data Models
The Ignite UI for Blazor map component is designed to display geo-spatial data from shape files and/or geographic locations from data models on geographic imagery maps. The DataSource
property of geographic series is used for the purpose of binding to data models. This property can be bound an array of custom objects.
Blazor Binding Geographic Data Models 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">
@for (int i = 0; i < this.Data.Count; i++)
{
FlightInfo info = this.Data[i];
List<WorldCity> symbolData = new List<WorldCity>() { info.Origin, info.Dest };
GeoLocation geoOrigin = new GeoLocation() { Lat = info.Origin.Lat, Lon = info.Origin.Lon };
GeoLocation geoDest = new GeoLocation() { Lat = info.Dest.Lat, Lon = info.Dest.Lon };
List<List<Point>> geoPath = WorldUtils.CalcPaths(geoOrigin, geoDest);
double geoDistance = WorldUtils.CalcDistance(geoOrigin, geoDest);
FlightInfo route = new FlightInfo()
{
Points = geoPath,
Origin = info.Origin,
Dest = info.Dest,
Distance = geoDistance,
Time = geoDistance / 850
};
List<FlightInfo> geoRoute = new List<FlightInfo>() { route };
<IgbGeographicSymbolSeries DataSource="symbolData" MarkerType="MarkerType.Circle"
LatitudeMemberPath="Lat" LongitudeMemberPath="Lon"
MarkerBrush="White" MarkerOutline="@info.Color"
Thickness="1">
</IgbGeographicSymbolSeries>
<IgbGeographicPolylineSeries DataSource="geoRoute" ShapeMemberPath="Points"
ShapeStrokeThickness="9" ShapeOpacity="0.5"
ShapeStroke="@info.Color">
</IgbGeographicPolylineSeries>
}
</IgbGeographicMap>
</div>
</div>
@code {
private List<FlightInfo> Data;
protected override void OnInitialized()
{
WorldCity cityDAL = new WorldCity() { Lat = 32.763, Lon = -96.663, Country = "US", Name = "Dallas" };
WorldCity citySYD = new WorldCity() { Lat = -33.889, Lon = 151.028, Country = "Australia", Name = "Sydney" };
WorldCity cityNZL = new WorldCity() { Lat = -36.848, Lon = 174.763, Country = "New Zealand", Name = "Auckland" };
WorldCity cityQTR = new WorldCity() { Lat = 25.285, Lon = 51.531, Country = "Qatar", Name = "Doha" };
WorldCity cityPAN = new WorldCity() { Lat = 8.949, Lon = -79.400, Country = "Panama", Name = "Panama" };
WorldCity cityCHL = new WorldCity() { Lat = -33.475, Lon = -70.647, Country = "Chile", Name = "Santiago" };
WorldCity cityJAP = new WorldCity() { Lat = 35.683, Lon = 139.809, Country = "Japan", Name = "Tokyo" };
WorldCity cityALT = new WorldCity() { Lat = 33.795, Lon = -84.349, Country = "US", Name = "Atlanta" };
WorldCity cityJOH = new WorldCity() { Lat = -26.178, Lon = 28.004, Country = "South Africa", Name = "Johannesburg" };
WorldCity cityNYC = new WorldCity() { Lat = 40.750, Lon = -74.0999, Country = "US", Name = "New York" };
WorldCity citySNG = new WorldCity() { Lat = 1.229, Lon = 104.177, Country = "Singapore", Name = "Singapore" };
WorldCity cityMOS = new WorldCity() { Lat = 55.750, Lon = 37.700, Country = "Russia", Name = "Moscow" };
WorldCity cityROM = new WorldCity() { Lat = 41.880, Lon = 12.520, Country = "Italy", Name = "Roma" };
WorldCity cityLAX = new WorldCity() { Lat = 34.000, Lon = -118.25, Country = "US", Name = "Los Angeles" };
this.Data = new List<FlightInfo>() {
new FlightInfo(){ Origin = cityDAL, Dest = citySNG, Color = "Green" },
new FlightInfo(){ Origin = cityMOS, Dest = cityNZL, Color = "Red" },
new FlightInfo(){ Origin = cityCHL, Dest = cityJAP, Color = "Blue" },
new FlightInfo(){ Origin = cityPAN, Dest = cityROM, Color = "Orange" },
new FlightInfo(){ Origin = cityALT, Dest = cityJOH, Color = "Black" },
new FlightInfo(){ Origin = cityNYC, Dest = cityQTR, Color = "Purple" },
new FlightInfo(){ Origin = cityLAX, Dest = citySYD, Color = "Gray" },
};
}
}
razor/*
CSS styles are loaded from the shared CSS file located at:
https://static.infragistics.com/xplatform/css/samples/
*/
css
The following table summarized data structures required for each type of geographic series:
Geographic Series | Properties | Description |
---|---|---|
IgbGeographicSymbolSeries |
LongitudeMemberPath , LatitudeMemberPath |
Specifies names of 2 numeric longitude and latitude coordinates |
IgbGeographicHighDensityScatterSeries |
LongitudeMemberPath , LatitudeMemberPath |
Specifies names of 2 numeric longitude and latitude coordinates |
IgbGeographicProportionalSymbolSeries |
LongitudeMemberPath , LatitudeMemberPath , RadiusMemberPath |
Specifies names of 2 numeric longitude and latitude coordinates and 1 numeric column for size/radius of symbols |
IgbGeographicScatterAreaSeries |
LongitudeMemberPath , LatitudeMemberPath , ColorMemberPath |
Specifies names of 2 numeric longitude and latitude coordinates and 1 numeric column for triangulation of values |
IgbGeographicContourLineSeries |
LongitudeMemberPath , LatitudeMemberPath , ValueMemberPath |
Specifies names of 2 numeric longitude and latitude coordinates and 1 numeric column for triangulation of values |
IgbGeographicShapeSeries |
ShapeMemberPath |
Specifies the name of data column of DataSource items that contains the geographic points of shapes. This property must be mapped to an array of arrays of objects with x and y properties. |
IgbGeographicPolylineSeries |
ShapeMemberPath |
Specifies the name of data column of DataSource items that contains the geographic coordinates of lines. This property must be mapped to an array of arrays of objects with x and y properties. |
Code Snippet
The following code shows how to bind the IgbGeographicSymbolSeries
to a custom data model that contains geographic locations of some cities of the world stored using longitude and latitude coordinates. Also, we use the IgbGeographicPolylineSeries
to plot shortest geographic path between these locations using the WorldUtility
@using IgniteUI.Blazor.Controls
<IgbGeographicMap Height="100%" Width="100%" Zoomable="true">
@for (int i = 0; i < this.DataSource.Count; i++)
{
FlightInfo info = this.DataSource[i];
List<WorldCity> symbolData = new List<WorldCity>() { info.Origin, info.Dest };
GeoLocation geoOrigin = new GeoLocation() { Lat = info.Origin.Lat, Lon = info.Origin.Lon };
GeoLocation geoDest = new GeoLocation() { Lat = info.Dest.Lat, Lon = info.Dest.Lon };
List<List<Point>> geoPath = WorldUtils.CalcPaths(geoOrigin, geoDest);
double geoDistance = WorldUtils.CalcDistance(geoOrigin, geoDest);
FlightInfo route = new FlightInfo()
{
Points = geoPath,
Origin = info.Origin,
Dest = info.Dest,
Distance = geoDistance,
Time = geoDistance / 850
};
List<FlightInfo> geoRoute = new List<FlightInfo>() { route };
<IgbGeographicSymbolSeries DataSource="@symbolData" MarkerType="MarkerType.Circle"
LatitudeMemberPath="Lat" LongitudeMemberPath="Lon"
MarkerBrush="White" MarkerOutline="@info.Color"
Thickness="1">
</IgbGeographicSymbolSeries>
<IgbGeographicPolylineSeries DataSource="@geoRoute" ShapeMemberPath="Points"
ShapeStrokeThickness="9" ShapeOpacity="0.5"
ShapeStroke="@info.Color">
</IgbGeographicPolylineSeries>
}
</IgbGeographicMap>
@code {
private List<FlightInfo> DataSource;
protected override void OnInitialized()
{
WorldCity cityDAL = new WorldCity() { Lat = 32.763, Lon = -96.663, Country = "US", Name = "Dallas" };
WorldCity citySYD = new WorldCity() { Lat = -33.889, Lon = 151.028, Country = "Australia", Name = "Sydney" };
WorldCity cityNZL = new WorldCity() { Lat = -36.848, Lon = 174.763, Country = "New Zealand", Name = "Auckland" };
WorldCity cityQTR = new WorldCity() { Lat = 25.285, Lon = 51.531, Country = "Qatar", Name = "Doha" };
WorldCity cityPAN = new WorldCity() { Lat = 8.949, Lon = -79.400, Country = "Panama", Name = "Panama" };
WorldCity cityCHL = new WorldCity() { Lat = -33.475, Lon = -70.647, Country = "Chile", Name = "Santiago" };
WorldCity cityJAP = new WorldCity() { Lat = 35.683, Lon = 139.809, Country = "Japan", Name = "Tokyo" };
WorldCity cityALT = new WorldCity() { Lat = 33.795, Lon = -84.349, Country = "US", Name = "Atlanta" };
WorldCity cityJOH = new WorldCity() { Lat = -26.178, Lon = 28.004, Country = "South Africa", Name = "Johannesburg" };
WorldCity cityNYC = new WorldCity() { Lat = 40.750, Lon = -74.0999, Country = "US", Name = "New York" };
WorldCity citySNG = new WorldCity() { Lat = 1.229, Lon = 104.177, Country = "Singapore", Name = "Singapore" };
WorldCity cityMOS = new WorldCity() { Lat = 55.750, Lon = 37.700, Country = "Russia", Name = "Moscow" };
WorldCity cityROM = new WorldCity() { Lat = 41.880, Lon = 12.520, Country = "Italy", Name = "Roma" };
WorldCity cityLAX = new WorldCity() { Lat = 34.000, Lon = -118.25, Country = "US", Name = "Los Angeles" };
this.DataSource = new List<FlightInfo>() {
new FlightInfo() { Origin = cityDAL, Dest = citySNG, Color = "Green" },
new FlightInfo() { Origin = cityMOS, Dest = cityNZL, Color = "Red" },
new FlightInfo() { Origin = cityCHL, Dest = cityJAP, Color = "Blue" },
new FlightInfo() { Origin = cityPAN, Dest = cityROM, Color = "Orange" },
new FlightInfo() { Origin = cityALT, Dest = cityJOH, Color = "Black" },
new FlightInfo() { Origin = cityNYC, Dest = cityQTR, Color = "Purple" },
new FlightInfo() { Origin = cityLAX, Dest = citySYD, Color = "Gray" },
};
}
public class WorldCity
{
public string Name { get; set; }
public double Lat { get; set; }
public double Lon { get; set; }
public double Pop { get; set; }
public string Country { get; set; }
public bool Cap { get; set; }
}
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; }
}
}
razor