From 8b766723f1c1e58f102fb46e40b4c03de95875c2 Mon Sep 17 00:00:00 2001 From: wan-may Date: Sat, 27 Apr 2024 22:38:23 -0300 Subject: [PATCH] add some UI --- bmp.lua | 9 +- button.lua | 87 +- camera.lua | 4 +- data/cities.dat | 2745 ---------------------------------------- data/graphics/blur.bmp | Bin 0 -> 146996 bytes lines.lua | 58 +- main.lua | 266 ++-- map.lua | 87 +- scratch.lua | 2 - territory.lua | 8 +- travelNodes.lua | 44 +- 11 files changed, 391 insertions(+), 2919 deletions(-) delete mode 100644 data/cities.dat create mode 100644 data/graphics/blur.bmp delete mode 100644 scratch.lua diff --git a/bmp.lua b/bmp.lua index 1ec076a..81afbf4 100644 --- a/bmp.lua +++ b/bmp.lua @@ -15,8 +15,15 @@ function t.load( filename ) return img, imgd end -function t.save( data, filename ) +function t.save( data, filename, format ) local w, h = data:getDimensions() + local str = "" + for x = 0, w - 1 do + for y = 0, h - 1 do + + end + end + return str end return t \ No newline at end of file diff --git a/button.lua b/button.lua index dfe51d8..244174f 100644 --- a/button.lua +++ b/button.lua @@ -1,32 +1,79 @@ -local t = {} +local lg = love.graphics -function t.onHover( button ) - +local t = { + name = "", + tooltip = "button", + icon = lg.newImage( "icons/eye.bmp" ), + x = 8, + y = 250, + w = 176, + h = 24, + visible = true, + callback = function( self ) return print( "clicked button: ", self.name, self.x, self.y, self.w, self.h, self.visible ) end +} +t.selected, t.next, t.prev = t, t, t + +function t.contains( button, x, y ) + return x < button.x + button.w and x > button.x + and y < button.y + button.h and y > button.y end -function t.onClick( button ) - +function t.new( b ) + b = setmetatable( b or {}, t ) + b.next = t + t.prev.next = b + b.prev = t.prev + t.prev = b + return b end -function t.newButton( name, tooltip, icon, x, y, w, h, callback ) - return setmetatable( { - name = name, - tooltip = tooltip, - icon = icon, - x = x, - y = y, - w = w, - h = h, - callback = callback }, - t ) +local drawPassOngoing = false +function t.draw( b ) + if b == t then + drawPassOngoing = not( drawPassOngoing ) + if not drawPassOngoing then return end + elseif b.visible then + lg.rectangle( "line", b.x, b.y, b.w, b.h, 6 ) + lg.printf( b.name, + b.x, + b.y + 0.5 * ( b.h- lg.getFont():getHeight() ), + b.w - 5, + "right" ) + if b.icon then lg.draw( b.icon, + b.x, b.y + 0.5 * (b.h - b.icon:getHeight()), + 0, + 0.5, 0.5 ) + end + if t.selected == b then + lg.rectangle( "fill", b.x, b.y, b.w, b.h, 6 ) + end + end + return t.draw( b.next ) end -function t.draw( button ) - +function t.select( b ) + t.selected = b end -t.__index = t -t.__call = t.newButton +function t.selectNext() + repeat t.selected = t.selected.next until t.selected.visible +end + +function t.selectPrev() + repeat t.selected = t.selected.prev until t.selected.visible +end + +function t.selectIn( x, y ) + t.selected = t + repeat t.selected = t.selected.next until (t.selected == t) or (t.selected.visible and t.selected:contains( x, y )) +end + +function t.deselect( b ) + t.selected = t +end setmetatable( t, t ) +t.__index = t +t.__call = t.new + return t \ No newline at end of file diff --git a/camera.lua b/camera.lua index 00650c0..4f10c8b 100644 --- a/camera.lua +++ b/camera.lua @@ -47,8 +47,8 @@ function Camera.Set( x, y, w, h ) tfTerritory:translate( -x * 512 / 360, y * 512 / 360 ) tfNodes:reset() - tfNodes:scale( w / 360, h / 200 ) - tfNodes:translate( 180 - x , y + 100 ) + tfNodes:scale( w / 360, -h / 200 ) + tfNodes:translate( 180 - x , -y - 100 ) --tfNodes:translate( -x * 800 / 360, y * 400 / 200 ) end diff --git a/data/cities.dat b/data/cities.dat deleted file mode 100644 index 26cc1ff..0000000 --- a/data/cities.dat +++ /dev/null @@ -1,2745 +0,0 @@ -Cambridge United Kingdom 6.166700 35.566700 106673 0 -Gloucester United Kingdom 6.666700 36.366699 108150 0 -Hastings/Bexhill United Kingdom 5.400000 36.183300 112080 0 -Slough United Kingdom 13.250000 -8.833300 106882 0 -Swindon United Kingdom 2.516700 6.400000 128492 0 -Bobo Dioulasso Burkina Faso -4.300000 11.183300 173925 0 -Ouagadougou Burkina Faso -2.333300 12.333300 307937 1 -Bujumbura Burundi 29.316700 -3.366700 215243 1 -Douala Cameroon 9.716700 4.066700 1029731 0 -Maraua Cameroon 14.333300 10.583300 250000 0 -Nkongsamba Cameroon 9.883300 4.983300 250000 0 -Yaounde Cameroon 11.516700 3.850000 653670 1 -Bangui Central African Republic 18.616699 4.383300 473817 1 -Ndjamena Chad 14.983300 12.166700 179000 1 -Moroni Comoros 43.266701 -11.666700 17267 1 -Brazzaville Congo 15.233300 -4.233300 596200 0 -Point Noire Congo 11.883300 -4.766700 298014 0 -Abidjan Cote d'lvoire -4.016700 5.316700 250000 1 -Bouake Cote d'lvoire -5.000000 7.700000 250000 0 -Alexandria Egypt 29.916700 31.216700 2893000 0 -Assyut Egypt 31.116699 27.233299 291000 0 -Aswan Egypt 32.933300 24.083300 196000 0 -Beni-Suef Egypt 31.083300 29.083300 163000 0 -Cairo Egypt 31.250000 30.049999 6052836 1 -Damanhur Egypt 30.466700 31.049999 226000 0 -El-Mahalla El-Kubra Egypt 31.000000 31.000000 385000 0 -Faiyum Egypt 30.833300 29.316700 227000 0 -Giza Egypt 30.850000 30.483299 1857508 0 -Ismailia Egypt 32.250000 30.600000 236000 0 -Kafr-El-Dwar Egypt 30.133301 31.133301 194000 0 -Kena Egypt 32.700001 26.133301 142000 0 -Mansura Egypt 31.383301 31.049999 358000 0 -Shebin-El-Kom Egypt 31.016701 30.549999 136000 0 -Shubra-El-Khema Egypt 31.250000 30.100000 710794 0 -Sohag Egypt 31.700001 26.549999 141000 0 -Suez Egypt 32.549999 29.983299 265000 0 -Tanta Egypt 31.000000 30.799999 374000 0 -Zagazig Egypt 31.500000 30.583300 274000 0 -Addis Ababa Ethiopia 38.700001 9.050000 1618600 1 -Asmara Ethiopia 38.966702 15.333300 307070 0 -Diredawa Ethiopia 41.833302 9.583300 112540 0 -Libreville Gabon 9.416700 0.500000 250000 1 -Banjul Gambia -16.650000 13.466700 49181 1 -Accra Ghana -0.250000 5.550000 564194 1 -Kumasi Ghana -1.583300 6.750000 260286 0 -Sekondi-Takoradi Ghana -1.716700 4.983300 91874 0 -Bissau Guinea-Bissau -15.650000 11.866700 109214 1 -Kisumu Kenya 34.783298 -0.133300 152643 0 -Nairobi Kenya 36.833302 -1.283300 1162189 1 -Maseru Lesotho 27.483299 -29.316700 13312 1 -Monrovia Liberia -10.766700 6.333300 421058 1 -Bengazi Libyan Arab 20.083300 32.116699 282192 1 -Blantyre-Limbe Malawi 35.000000 -15.766700 331588 0 -Lilongwe Malawi 33.816700 -13.966700 233973 1 -Bamako Mali -7.983300 12.666700 399869 1 -Agadir Morocco -9.666700 30.500000 250000 0 -Beni-Mellal Morocco -6.483300 32.366699 250000 0 -Fez Morocco -5.000000 34.083302 250000 0 -Khemisset Morocco -6.050000 33.833302 250000 0 -Khouribga Morocco -6.950000 32.900002 250000 0 -Marrakech Morocco -8.000000 31.816700 250000 0 -Meknes Morocco -5.616700 33.883301 250000 0 -Nador Morocco -3.000000 35.166698 250000 0 -Rabit-Sale Morocco -6.850000 34.033298 250000 1 -Settat Morocco -7.616700 33.066700 250000 0 -Taza Morocco -4.016700 34.266701 250000 0 -Tetouan Morocco -5.366700 35.566700 250000 0 -Beira Mozambique 34.866699 -19.816700 264202 0 -Napmpula Mozambique 39.233299 -15.150000 182505 0 -Windhoek Namibia 17.100000 -22.566700 250000 1 -Niamey Niger 2.083300 13.533300 225314 1 -Aba Nigeria 7.350000 5.100000 177000 0 -Abeokuta Nigeria 3.433300 7.166700 253000 0 -Ado-Ekiti Nigeria 5.266700 7.666700 213000 0 -Benin Nigeria 5.683300 6.316700 136000 0 -Calabar Nigeria 8.366700 4.933300 103000 0 -Ede Nigeria 4.516700 7.733300 182000 0 -Enugu Nigeria 7.500000 6.333300 187000 0 -Ibadan Nigeria 3.933300 7.383300 847000 0 -Ife Nigeria 4.566700 7.550000 176000 0 -Ikere-Ekiti Nigeria 5.233300 7.516700 145000 0 -Ila Nigeria 4.900000 8.000000 155000 0 -Ilesha Nigeria 3.416700 8.916700 224000 0 -Ilovin Nigeria 4.533300 8.500000 282000 0 -Iseyin Nigeria 3.666700 7.983300 115083 0 -Iwo Nigeria 4.183300 7.633300 214000 0 -Kaduna Nigeria 7.416700 10.466700 202000 0 -Kano Nigeria 8.516700 12.000000 399000 0 -Lagos Nigeria 3.466700 6.450000 1060848 1 -Maiduguri Nigeria 13.266700 11.883300 189000 0 -Mushin Nigeria 3.366700 6.533300 197000 0 -Ogbomosho Nigeria 4.183300 8.083300 432000 0 -Onitsha Nigeria 6.783300 6.166700 220000 0 -Oshogbo Nigeria 4.583300 7.833300 282000 0 -Oyo Nigeria 3.916700 7.833300 152000 0 -Port Harcourt Nigeria 7.166700 4.716700 242000 0 -Zaria Nigeria 7.733300 11.016700 224000 0 -Kigali Rwanda 30.066700 -1.933300 116227 1 -Jamestown St. Helena -5.733300 -15.916700 1576 1 -Sao Tome Sao Tome and Principe 6.716700 0.316700 5714 1 -Kaolack Senegal -16.133301 14.150000 106899 0 -Thies Senegal -16.866699 14.816700 117333 0 -Port Victoria Seychelles 55.450001 -4.633300 250000 1 -Benoni S. Africa 28.299999 -26.200001 151294 0 -Bloemfrontein S. Africa 26.233299 -29.116699 104381 0 -Boksburg S.Africa 28.250000 -26.216700 110832 0 -Cape Town S.Africa 18.466700 -33.933300 776617 1 -Durban S.Africa 31.000000 -29.883301 634301 0 -Germiston S. Africa 28.166700 -26.250000 116718 0 -Johannesburg S. Africa 28.033300 -26.166700 632369 0 -Katlehong S. Africa 28.150000 -26.333300 137745 0 -Mamelodi S. Africa 28.333300 -25.666700 127033 0 -Nyanga S. Africa 18.583300 -33.983299 148882 0 -Pietermaritzburg S. Africa 30.400000 -29.600000 114822 0 -Port Elizabeth S. Africa 25.600000 -33.966702 272844 0 -Pretoria S. Africa 28.200001 -25.750000 443059 1 -Roodepoort S. Africa 27.883301 -26.166700 141764 0 -Sasolburg S. Africa 27.850000 -26.833300 250000 0 -Soweto S. Africa 27.833300 -26.283300 521948 0 -Springs S. Africa 28.433300 -26.266701 142812 0 -Tembisa S. Africa 28.233299 -25.966700 149282 0 -Umlazi S. Africa 30.883301 -29.966700 123495 0 -Vereeniging S. Africa 27.933300 -26.683300 172549 0 -W. Rand S. Africa 27.750000 -26.116699 250000 0 -El Obied Sudan 30.166700 13.183300 118000 0 -Juba Sudan 31.583300 4.833300 116000 0 -Kassala Sudan 36.416698 15.400000 149000 0 -Khartoum Sudan 32.533298 15.550000 561000 1 -Khartoum N. Sudan 32.566700 15.650000 249000 0 -Wad Medani Sudan 33.700001 14.400000 153000 0 -Omdurman Sudan 32.483299 15.616700 454000 0 -Port Sudan Sudan 37.116699 19.633301 205000 0 -Wau Sudan 28.000000 7.700000 116000 0 -Mbabane Swaziland 31.133301 -26.333300 23109 1 -Lome Togo 1.350000 6.166700 148156 1 -Tunis Tunisia 10.216700 36.833302 596654 1 -Kampala Uganda 32.583302 0.316700 250000 1 -Dodoma Tanzania 35.666698 -6.166700 85000 1 -Mbeya Tanzania 33.483299 -8.900000 194000 0 -Mwanza Tanzania 32.933300 -2.516700 252000 0 -Tabora Tanzania 32.799999 -5.016700 214000 0 -Zanzibar Tanzania 39.200001 -6.166700 133000 0 -El Aaiun W. Sahara -13.200000 27.150000 20010 1 -Kananga Zaire 22.433300 -5.883300 290898 0 -Kikwit Zaire 18.850000 -5.033300 133206 0 -Kisangani Zaire 25.233299 0.550000 282650 0 -Kolwezi Zaire 25.416700 -10.750000 201382 0 -Likasi Zaire 26.783300 -10.966700 194465 0 -Lubumbashi Zaire 27.483299 -11.683300 543268 0 -Luluabourg Zaire 22.416700 -5.900000 506033 0 -Matadi Zaire 13.533300 -5.833300 144742 0 -Mbandaka Zaire 18.466700 0.050000 125263 0 -Mbuji-Mayi Zaire 23.650000 -6.166700 423363 0 -Chingola Zambia 27.883301 -12.516700 145993 0 -Kabwe Zambia 28.416700 -14.483300 136003 0 -Luanshya Zambia 28.400000 -13.150000 129589 0 -Lusaka Zambia 28.333300 -15.433300 535830 1 -Mufulire Zambia 28.200001 -12.500000 150069 0 -Ndola Zambia 28.650000 -13.000000 281315 0 -Bulawayo Zimbabwe 28.716700 -20.166700 429000 0 -Chitungwiza Zimbabwe 31.133301 -18.000000 202000 0 -Harare Zimbabwe 31.049999 -17.833300 681000 1 -St. John City Antigua & B -61.849998 17.100000 21814 1 -Nassau Bahamas -77.333298 25.049999 250000 1 -Bridgetown Barbados -59.616699 13.100000 7466 1 -Hamilton Bermuda -64.800003 32.299999 1669 1 -Road Town Virgin Is. -64.650002 18.466700 891 1 -Burlington Canada -79.800003 43.316700 114855 0 -Burnaby Canada -122.916702 49.266701 136495 0 -Calgary Canada -114.083298 51.083302 250000 0 -Chicoutimi-Jong Canada -71.099998 48.433300 250000 0 -E. York Canada -79.333298 43.716702 101975 0 -Edmonton Canada -113.416702 53.566700 250000 0 -Etobicoke Canada -79.500000 43.633301 298710 0 -Halifax Canada -63.583302 44.633301 250000 0 -Hamilton Canada -79.833298 43.250000 250000 0 -Kitchener Canada -80.500000 43.450001 250000 0 -Laval Canada -73.666702 45.566700 268335 0 -London Canada -81.250000 42.966702 250000 0 -Longueuil Canada -73.516701 45.533298 124320 0 -Mississauga Canada -79.599998 43.633301 315055 0 -Montreal Canada -73.566704 45.516701 250000 0 -N. York Canada -79.433296 43.733299 559520 0 -Oshawa Canada -78.849998 43.883301 250000 0 -Ottawa Canada -75.716698 45.416698 250000 1 -Quebec Canada -71.250000 45.833302 250000 0 -Regina Canada -104.633301 50.500000 250000 0 -St. Catherines Canada -73.566704 45.400002 250000 0 -Saint John Canada -66.050003 45.266701 250000 0 -Saskatoon Canada -106.666702 52.166698 250000 0 -Scarborough Canada -79.266701 43.733299 443355 0 -Sudbury Canada -81.016701 46.500000 250000 0 -Surrey Canada -122.766701 49.116699 147135 0 -Thunder Bay Canada -89.199997 48.450001 250000 0 -Toronto Canada -79.416702 43.700001 250000 0 -Trois-Rivieres Canada -72.566704 46.349998 250000 0 -Hong Kong Hong Kong 114.216698 23.644600 10331380 1 -Windsor Canada -83.016701 42.299999 250000 0 -Winnipeg Canada -97.000000 50.500000 250000 0 -York Canada -79.449997 43.700001 134615 0 -San Jose Costa Rica -84.066704 9.983300 274832 1 -Bayamo Cuba -76.650002 20.383301 108716 0 -Camaguey Cuba -77.916702 21.416700 265588 0 -Guantanamo Cuba -75.233299 20.150000 179091 0 -Holguin Cuba -76.250000 20.900000 199861 0 -La Habana Cuba -82.366699 23.133301 2036799 1 -Matanzas Cuba -81.583298 23.066700 106954 0 -Pinar del Rio Cuba -83.699997 22.400000 108109 0 -Santa Clara Cuba -79.966698 22.416700 182349 0 -Santiago de Cuba Cuba -75.816704 20.000000 364554 0 -Santiago de Los Caballeros Dominican Rep -70.666702 19.500000 155000 0 -Santo Domingo Dominican Rep -69.949997 18.500000 673470 1 -San Salvador El Salvador -89.166702 13.666700 335930 1 -Godthab Greenland -51.583302 64.250000 8425 1 -St. George's Grenada -61.733299 12.066700 7303 1 -Ciudad de Guat Guatemala -90.366699 14.633300 754243 1 -Port-au-Prince Haiti -72.333298 18.549999 461464 1 -San Pedro Sula Honduras -88.016701 15.433300 397201 0 -Tegucigalpa Honduras -87.233299 14.083300 597512 1 -Kingston Jamaica -76.800003 17.966700 104041 1 -Fort-de-France Martinique -61.083302 14.600000 97814 1 -Acapulco Mexico -99.933296 16.850000 301902 0 -Aguascalientes Mexico -102.300003 21.850000 293152 0 -Apatzingan Mexico -102.333298 19.083300 100259 0 -Campeche Mexico -90.500000 19.833300 128434 0 -Celaya Mexico -100.800003 20.533300 141615 0 -Chihuahua Mexico -106.099998 28.666700 385603 0 -Ciudad Juarez Mexico -106.483299 31.700001 544496 0 -Cuidad Madero Mexico -97.833298 22.316700 132444 0 -Cuidad Obregon Mexico -109.983299 27.466700 165520 0 -Cuidad Victoria Mexico -99.166702 23.716700 140161 0 -Cordoba Mexico -96.916702 18.916700 121723 0 -Cuernavaca Mexico -99.250000 18.950001 192770 0 -Culiacan Mexico -107.383301 24.833300 304826 0 -Durango Mexico -104.666702 24.016701 257915 0 -Ecatepec Mexico -99.066704 19.583300 741821 0 -Ensenada Mexico -116.616699 31.866699 120483 0 -Gomez Palacio Mexico -103.500000 25.650000 116967 0 -Guadalajara Mexico -103.333298 20.666700 1626152 0 -Guadalupe Mexico -100.250000 25.683300 370524 0 -Hermosillo Mexico -110.983299 29.250000 297175 0 -Irapuato Mexico -101.500000 20.666700 170138 0 -Jalapa Mexico -92.800003 17.750000 204594 0 -Leon Mexico -101.699997 21.166700 593002 0 -Los Mochis Mexico -109.000000 25.799999 122531 0 -Matamoros Mexico -97.500000 25.883301 188745 0 -Mazatlan Mexico -106.416702 23.183300 199830 0 -Merida Mexico -89.650002 20.983299 400142 0 -Mexicali Mexico -115.483299 32.666698 341559 0 -Mexico Mexico -99.166702 19.416700 8831079 1 -Minatitlan Mexico -94.533302 17.983299 106765 0 -Monciova Mexico -101.416702 26.900000 115786 0 -Monterrey Mexico -100.333298 25.666700 1084696 0 -Morelia Mexico -101.183296 19.666700 297544 0 -Naucalpan Mexico -99.233299 19.466700 723723 0 -Netzahualcoyoti Mexico -91.449997 17.700001 1342230 0 -Nuevo Laredo Mexico -99.500000 27.500000 201731 0 -Oaxaca de Juarez Mexico -96.683296 17.083300 154223 0 -Orizaba Mexico -97.133301 18.850000 114848 0 -Pozo Rica de Hidalgo Mexico -97.466698 20.549999 166799 0 -Puebla de Zaragoza Mexico -98.199997 19.049999 772908 0 -Queretaro Mexico -100.383301 20.633301 215976 0 -Reynosa Mexico -98.300003 26.083300 194693 0 -Salamanca Mexico -101.199997 20.566700 105543 0 -Saltillo Mexico -101.000000 25.500000 284937 0 -San Luis Potosi Mexico -101.000000 22.166700 362371 0 -San Nicolas de LosGarza Mexico -98.516701 16.433300 280696 0 -Tampico Mexico -97.866699 22.299999 248369 0 -Tepic Mexico -104.849998 21.500000 145741 0 -Tijuana Mexico -117.166702 32.483299 429500 0 -Tlanepantla Mexico -99.199997 19.566700 778173 0 -Tlaquepaque Mexico -103.250000 20.650000 133500 0 -Toluca Mexico -99.666702 19.333300 199778 0 -Torreon Mexico -103.416702 25.566700 328086 0 -Tuxtlan Gutierrez Mexico -93.150002 16.750000 131096 0 -Uruapan Mexico -102.066704 19.433300 122828 0 -Veracruz Liave Mexico -96.166702 19.183300 284822 0 -Villa Hermosa Mexico -92.883301 18.000000 158216 0 -Zapopan Mexico -103.400002 20.716700 345390 0 -Plymouth Montserrat -62.233299 16.733299 1478 1 -Managua Nicaragua -86.300003 12.100000 608020 1 -Panama Panama -79.500000 8.950000 434668 1 -San Miguelito Panama -79.500000 9.033300 221512 0 -Aguadilla Puerto Rico -67.133301 18.450001 250000 0 -Caguas Puerto Rico -66.066704 18.233299 250000 0 -Mayaguez Puerto Rico -67.150002 18.216700 250000 0 -Ponce Puerto Rico -66.599998 18.016701 250000 0 -Kingstown St. Vincent and the Grenadines -61.233299 13.200000 4308 1 -Port-of-Spain Trinidad and Tobago -61.516701 10.633300 59649 1 -Grand Turk Turks and Caicos Islands -71.333298 21.333300 3098 1 -Abilene USA -99.666702 32.366699 112430 0 -Akron USA -87.750000 32.866699 222060 0 -Albany (Ga.) USA -84.166702 31.616699 84950 0 -Albany (N.Y.) USA -73.816704 42.666698 97020 0 -Albuquerque USA -106.633301 35.083302 366750 0 -Alexandria (La.) USA -92.483299 31.316700 51400 0 -Alexandria (Va.) USA -77.099998 38.816700 107800 0 -Allentown USA -75.500000 40.599998 104360 0 -Altoona USA -78.400002 40.533298 53160 0 -Amarillo USA -101.833298 35.233299 165850 0 -Anaheim USA -117.933296 33.833302 240730 0 -Anchorage USA -149.833298 61.166698 235000 0 -Anderson (In.) USA -85.683296 40.083302 61020 0 -Anderson (S.C.) USA -82.650002 34.500000 28680 0 -Ann Arbor USA -83.716698 42.299999 107800 0 -Anniston USA -85.833298 33.633301 29370 0 -Appleton USA -88.416702 44.283298 64190 0 -Arlington (Tx) USA -97.083298 32.733299 249770 0 -Asheville USA -86.266701 33.816700 60290 0 -Atlanta USA -84.400002 33.833302 421910 0 -Augusta USA -81.966698 33.466702 45440 0 -Aurora USA -104.866699 39.733299 217990 0 -Austin USA -97.750000 30.333300 466550 0 -Bakersfield USA -119.016701 35.366699 150400 0 -Baltimore USA -76.616699 39.299999 752800 0 -Baton Rouge USA -91.166702 30.500000 241130 0 -Battle Creek USA -85.166702 42.333302 54080 0 -Beaumout USA -94.133301 30.083300 119900 0 -Bellingham USA -122.449997 48.750000 44960 0 -Benton Harbor USA -86.449997 42.116699 14160 0 -Berkeley USA -122.283302 37.883301 104110 0 -Billings USA -108.483299 45.716702 80310 0 -Biloxi USA -88.916702 30.400000 47750 0 -Binghamton USA -75.916702 42.099998 52910 0 -Bloomington (Il.) USA -89.000000 40.483299 46250 0 -Bloomington (In.) USA -86.516701 39.166698 52500 0 -Boise City USA -102.516701 36.733299 108390 0 -Boston USA -71.000000 42.333302 573600 0 -Bradenton USA -82.550003 27.483299 37450 0 -Bremerton USA -122.666702 47.566700 34100 0 -Bridgeport USA -73.199997 41.183300 141860 0 -Bryan USA -96.366699 30.666700 62220 0 -Buffalo USA -78.883301 42.883301 324820 0 -Burlington (N.C.) USA -79.449997 36.116699 36830 0 -Burlington (Vt.) USA -73.233299 44.450001 38310 0 -Canton USA -81.383301 40.799999 87110 0 -Cedar Rapids USA -91.633301 42.000000 108370 0 -Champaign USA -88.233299 40.116699 59180 0 -Charleston (W.Vg.) USA -81.666702 38.383301 57920 0 -Charlotte USA -80.849998 35.216702 352070 0 -Charlottesville USA -78.483299 38.033298 41100 0 -Chattanooga USA -85.283302 35.033298 162170 0 -Chesapeake USA -76.283302 36.833302 134400 0 -Chicago USA -87.750000 41.833302 3009530 0 -Chico USA -121.900002 39.750000 32680 0 -Chula Vista USA -117.083298 32.599998 118840 0 -Cincinnati USA -84.433296 39.166698 369750 0 -Clarksville USA -87.349998 36.533298 60730 0 -Cleveland USA -81.716698 41.466702 535830 0 -Colorado Springs USA -104.833298 38.833302 272660 0 -Columbia (Mo.) USA -92.333298 38.966702 63140 0 -Columbia (S.C.) USA -81.000000 34.000000 93020 0 -Columbus (Ga.) USA -84.983299 32.466702 180180 0 -Columbus (Oh.) USA -83.050003 39.983299 566030 0 -Concord USA -122.033302 37.983299 105980 0 -Cumberland USA -78.766701 39.650002 23230 0 -Dallas USA -96.833298 32.833302 1003520 0 -Danville USA -79.383301 36.599998 44700 0 -Davenport USA -90.583298 41.533298 98750 0 -Dayton USA -84.199997 39.750000 178920 0 -Daytona Beach USA -81.016701 29.183300 58050 0 -Decatur (Il.) USA -88.949997 39.849998 90360 0 -Denver USA -105.000000 39.750000 505000 0 -Des Moines USA -93.616699 41.583302 192060 0 -Detroit USA -83.083298 42.333302 1086220 0 -Dothan USA -85.416702 31.166700 53310 0 -Durham USA -78.916702 36.000000 113890 0 -Eau Claire USA -91.500000 44.816700 54580 0 -El Paso USA -89.016701 40.733299 491800 0 -Erie USA -80.116699 42.166698 115270 0 -Eugene USA -123.066704 44.049999 105410 0 -Evansville USA -87.583298 37.966702 129480 0 -Fargo USA -97.000000 47.000000 68020 0 -Fayetteville (N.C.) USA -84.466698 33.433300 75770 0 -Flint USA -83.066704 43.049999 145590 0 -Florence (Alab.) USA -87.666702 34.799999 36100 0 -Florence (S.C.) USA -79.733299 34.200001 31670 0 -Fort Collins USA -105.083298 40.583302 74140 0 -Fort Lauderdale USA -80.133301 26.133301 148620 0 -Fort Myers USA -81.849998 26.650000 39530 0 -Fort Smith USA -94.449997 35.366699 74320 0 -Fort Walton Beach USA -86.633301 30.450001 22890 0 -Fort Wayne USA -85.133301 41.083302 172900 0 -Fort Worth USA -97.333298 32.750000 429550 0 -Fresno USA -119.783302 36.683300 284660 0 -Fullerton USA -117.933296 33.866699 108750 0 -Gadsden USA -86.016701 34.016701 45180 0 -Gainesville USA -82.333298 29.666700 85170 0 -Garden Grove USA -117.966698 33.783298 134850 0 -Garland USA -112.166702 41.783298 176570 0 -Gary USA -87.333298 41.583302 136790 0 -Glendale (Az.) USA -112.166702 33.566700 125820 0 -Glendale (Ca.) USA -118.333298 34.150002 153660 0 -Glens Falls USA -73.683296 43.283298 16080 0 -Grand Rapids USA -85.666702 42.966702 186530 0 -Greely USA -104.699997 40.416698 56920 0 -Green Bay USA -88.000000 44.533298 93470 0 -Greensboro USA -79.800003 36.066700 176650 0 -Greenville USA -91.066704 33.400002 58370 0 -Hagerstown USA -77.766701 39.650002 33670 0 -Hampton USA -76.349998 37.033298 126000 0 -Harrisburg USA -76.883301 40.266701 51530 0 -Hartford USA -72.683296 41.766701 137980 0 -Hayward USA -91.500000 46.033298 101520 0 -Hialeah USA -80.283302 25.816700 161760 0 -Hickory USA -81.283302 35.766701 25750 0 -Hollywood (Fl.) USA -80.150002 26.016701 120910 0 -Honolulu USA -157.833298 21.316700 372330 0 -Houma USA -90.733299 29.583300 35080 0 -Houston USA -95.333298 29.833300 1728910 0 -Huntington USA -82.449997 38.416698 59310 0 -Huntsville USA -86.583298 34.733299 163420 0 -Independence USA -94.416702 39.099998 112950 0 -Indianapolis USA -86.166702 39.750000 719820 0 -Inglewood USA -118.366699 33.966702 102550 0 -Irving USA -96.949997 32.783298 128530 0 -Jackson (Mich.) USA -84.400002 42.250000 36970 0 -Jackson (Miss.) USA -90.183296 32.333302 208420 0 -Jacksonville (Fl.) USA -81.666702 30.333300 609860 0 -Jacksonville (N.C.) USA -77.433296 34.750000 28780 0 -Janesville USA -89.016701 42.650002 51790 0 -Johnson City USA -82.349998 36.316700 44700 0 -Johnstown USA -78.916702 40.333302 31840 0 -Joplin USA -94.416702 37.000000 40220 0 -Kalamazoo USA -85.599998 42.283298 77230 0 -Kansas City (Ka.) USA -94.666702 39.000000 162070 0 -Kansas City (M0.) USA -94.500000 39.049999 441170 0 -Killeen USA -97.733299 31.133301 59560 0 -Knoxville USA -83.916702 35.966702 173210 0 -Kokomo USA -86.099998 40.500000 45610 0 -Lafayette (Ind.) USA -86.900002 40.416698 44240 0 -Lafayette (La.) USA -92.016701 30.200001 89830 0 -Lake Charles USA -93.216698 30.216700 73400 0 -Lakeland 61890 USA -82.000000 28.000000 61890 0 -Lancaster USA -76.316704 40.033298 57200 0 -Lansing USA -84.533302 42.783298 128980 0 -Laredo USA -99.366699 27.533300 117060 0 -Las Cruces USA -106.783302 32.299999 54090 0 -Las Vegas USA -105.166702 35.583302 191510 0 -Lawton USA -98.416702 34.549999 82630 0 -Lexington-Fayette USA -84.500000 38.049999 212900 0 -Lima USA -84.099998 40.733299 45990 0 -Lincoln USA -96.683296 40.816700 183050 0 -Little Rock USA -92.283302 34.700001 181030 0 -Livonia USA -83.383301 42.383301 100540 0 -Longview USA -94.733299 32.500000 73870 0 -Los Angeles USA -118.166702 34.000000 3259340 0 -Louisville USA -85.766701 38.250000 286470 0 -Lubbock USA -101.883301 33.583302 186400 0 -Lynchburg USA -79.166702 37.383301 68000 0 -Macon USA -83.633301 32.849998 118420 0 -Madison USA -89.416702 43.083302 175830 0 -Manchester USA -71.466698 43.000000 97280 0 -Mansfield USA -82.516701 40.750000 51340 0 -McAllen USA -98.250000 26.216700 83300 0 -Medford USA -71.116699 42.416698 43580 0 -Memphis USA -90.000000 35.116699 652640 0 -Merced USA -120.483299 37.283298 47020 0 -Mesa USA -111.933296 33.333302 251430 0 -Miami USA -80.250000 25.866699 373940 0 -Midland USA -102.083298 32.000000 98060 0 -Milwaukee USA -87.933296 43.049999 605090 0 -Minneapolis USA -93.333298 44.966702 356840 0 -Mobile USA -88.050003 30.683300 203260 0 -Modesto USA -121.000000 37.616699 132940 0 -Monroe USA -92.116699 32.500000 56210 0 -Montgomery USA -86.316704 32.383301 194290 0 -Muncie USA -85.366699 40.183300 72600 0 -Muskegon USA -86.250000 43.216702 39810 0 -Naples USA -81.800003 26.133301 19490 0 -Nashville-Davidson USA -86.766701 36.200001 473670 0 -Newark USA -74.166702 40.700001 316240 0 -New Bedford USA -70.916702 41.633301 96450 0 -New Haven USA -72.900002 41.333302 123450 0 -New London USA -72.099998 41.366699 28600 0 -New Orleans USA -90.050003 30.000000 554500 0 -Norfolk USA -76.283302 36.849998 274800 0 -Oakland USA -122.300003 37.833302 356960 0 -Ocala USA -82.150002 29.183300 45120 0 -Odessa USA -102.383301 31.866699 101210 0 -Oklahoma City USA -97.550003 35.466702 446120 0 -Olympia USA -122.883301 47.049999 29710 0 -Omaha USA -96.000000 41.250000 349270 0 -Ontario USA -117.650002 34.066700 114320 0 -Orlando USA -81.416702 28.500000 145900 0 -Oxnard USA -119.166702 34.183300 126980 0 -Panama City (Fl.) USA -85.683296 30.166700 35630 0 -Parkersburg USA -81.516701 39.299999 38540 0 -Pasadena (Ca.) USA -118.150002 34.166698 129900 0 -Pasadena (Tx.) USA -95.233299 29.700001 118050 0 -Pascagoula USA -88.533302 30.350000 30860 0 -Paterson USA -74.166702 40.916698 139130 0 -Pensacola USA -87.199997 30.433300 63820 0 -Peoria USA -89.666702 40.700001 110290 0 -Philadelphia USA -75.166702 40.000000 162900 0 -Phoenix USA -112.166702 33.500000 894070 0 -Plano USA -96.750000 33.000000 111030 0 -Pomona USA -117.816704 34.033298 115540 0 -Portland (Me.) USA -70.300003 43.683300 62670 0 -Portland (Or.) USA -122.666702 45.533298 387870 0 -Portsmouth (Nh.) USA -70.783302 43.049999 25970 0 -Portsmouth (Va.) USA -76.333298 36.833302 111000 0 -Poughkeepsie USA -73.933296 41.716702 29990 0 -Provo USA -111.616699 40.266701 77480 0 -Pueblo USA -104.633301 38.283298 101240 0 -Raleigh USA -78.633301 35.766701 180430 0 -Reading USA -75.883301 40.333302 77620 0 -Redding USA -122.416702 40.500000 51490 0 -Reno USA -119.816704 39.533298 110430 0 -Richmond USA -77.449997 37.549999 217700 0 -Riverside USA -117.366699 33.983299 196750 0 -Roanoke USA -79.933296 37.266701 101900 0 -Rochester USA -77.616699 43.166698 235970 0 -Rockford USA -89.000000 42.333302 135760 0 -Sacramento USA -121.500000 38.650002 323550 0 -Saginaw USA -83.916702 43.433300 72479 0 -St. Cloud USA -81.250000 28.250000 42850 0 -St. Louis USA -90.199997 38.616699 426300 0 -St. Paul USA -93.083298 44.900002 263680 0 -Salem USA -70.883301 42.516701 93920 0 -Salinas USA -121.666702 36.650002 96960 0 -Salt Lake City USA -111.916702 40.750000 158440 0 -San Antonio USA -98.500000 29.500000 914350 0 -San Bernardino USA -117.300003 34.116699 138620 0 -San Diego USA -117.166702 32.833302 1015190 0 -San Francisco USA -121.449997 37.750000 3049000 0 -San Jose USA -122.000000 37.333302 712080 0 -Santa Ana USA -117.900002 33.733299 236780 0 -Santa Barbara USA -119.683296 34.416698 79290 0 -Santa Fe USA -106.000000 35.666698 55980 0 -Sarasota USA -82.533302 27.333300 51500 0 -Scottsdale USA -111.983299 33.450001 111140 0 -Scranton USA -75.683296 41.366699 82260 0 -Seattle USA -122.333298 47.583302 486200 0 -Sharon USA -80.500000 41.299999 16150 0 -Sheboygan USA -87.733299 43.766701 47410 0 -Shreveport USA -93.766701 32.500000 220380 0 -Sioux City USA -96.466698 42.500000 79590 0 -Sioux Falls USA -96.699997 43.566700 97550 0 -Spokane USA -117.416702 47.666698 172890 0 -Springfield (Il.) USA -89.650002 39.816700 100290 0 -Springfield (Ma.) USA -72.583298 42.116699 149410 0 -Springfield (Mo.) USA -93.316704 37.183300 139360 0 -Stamford USA -73.533302 41.049999 101080 0 -State College USA -77.866699 40.799999 34330 0 -Sterling Heights USA -84.033302 44.033298 111960 0 -Stockton USA -121.283302 37.966702 183430 0 -Sunnyvale USA -122.033302 37.383301 112130 0 -Syracuse USA -76.150002 43.049999 160750 0 -Tallahassee USA -84.316704 30.433300 119450 0 -Tempe USA -111.916702 33.416698 136480 0 -Terre Haute USA -87.400002 39.450001 57920 0 -Texarkana USA -94.050003 33.433300 33130 0 -Topeka USA -95.666702 39.049999 118580 0 -Torrance USA -118.333298 33.833302 135570 0 -Tucson USA -110.949997 32.250000 358850 0 -Tulsa USA -95.966698 36.116699 373750 0 -Tuscaloosa USA -87.550003 33.200001 73830 0 -Tyler USA -95.300003 32.349998 75440 0 -Utica USA -75.233299 43.099998 69440 0 -Virginia Beach USA -75.983299 36.849998 333400 0 -Visalia USA -119.300003 36.333302 61550 0 -Waco USA -97.083298 31.549999 105220 0 -Warren USA -83.033302 42.516701 149800 0 -Washington D.C. USA -77.000000 38.866699 2026000 1 -Waterbury USA -73.050003 41.549999 102300 0 -Waterloo USA -92.349998 42.500000 70010 0 -Wausau USA -89.666702 44.966702 32240 0 -W. Palm Beach USA -80.083298 26.700001 68570 0 -Wheeling USA -80.716698 40.083302 39980 0 -Wichita USA -97.333298 37.716702 288870 0 -Wichita Falls USA -98.500000 33.916698 99940 0 -Williamsport USA -77.016701 41.299999 31710 0 -Wilmington USA -77.916702 34.233299 54430 0 -Winston-Salem USA -80.300003 36.083302 148080 0 -Worcester USA -71.800003 42.266701 157770 0 -Yakima USA -120.500000 46.616699 49370 0 -Yonkers USA -73.849998 40.950001 186080 0 -York USA -76.733299 39.966702 44430 0 -Youngstown USA -80.650002 41.099998 104690 0 -Yuba City USA -121.599998 39.150002 21560 0 -Bahia Blanca Argentina -62.250000 -38.750000 250000 0 -Buenos Aires Argentina -58.500000 -34.666698 250000 1 -Cordoba Argentina -64.166702 -31.333300 250000 0 -Corrientes Argentina -58.799999 -27.500000 197000 0 -Mendoza Argentina -68.866699 -32.799999 250000 0 -Parana Argentina -60.500000 -31.750000 178000 0 -Posadas Argentina -55.833302 -27.450001 191000 0 -Resistencia Argentina -59.000000 -27.466700 250000 0 -Rio Cuarto Argentina -64.333298 -33.133301 118000 0 -Rosario Argentina -66.683296 -22.866699 250000 0 -Salta Argentina -65.466698 -24.766701 302000 0 -San Juan Argentina -68.516701 -31.549999 250000 0 -San Miguel de Tucuman Argentina -65.250000 -26.783300 250000 0 -San Salvador de Jujuy Argentina -65.800003 -24.166700 148000 0 -Santa Fe Argentina -60.683300 -31.583300 310000 0 -Santiago del Estero Argentina -64.250000 -27.783300 172000 0 -Cochabamba Bolivia -66.166702 -17.433300 317251 0 -La Paz Bolivia -68.166702 -16.500000 992592 1 -Oruro Bolivia -67.133301 -17.983299 178693 0 -Potosi Bolivia -65.750000 -19.566700 113380 0 -Santa Cruz Bolivia -63.233299 -17.750000 441717 0 -Sucre Bolivia -65.250000 -19.083300 86609 1 -Alagoinhas Brazil -38.349998 -12.150000 117298 0 -Alvorada Brazil -48.383301 -27.250000 105787 0 -Americana Brazil -47.316700 -22.733299 156809 0 -Anapolis Brazil -48.966702 -16.316700 226890 0 -Aracaju Brazil -37.116699 -10.900000 361544 0 -Aracatuba Brazil -50.400002 -21.200001 142308 0 -Arapiraca Brazil -36.666698 -9.750000 148416 0 -Araraquara Brazil -48.133301 -21.750000 145430 0 -Ariquemes Brazil -63.099998 -9.916700 102117 0 -Bage Brazil -54.099998 -31.366699 106294 0 -Barra Mansa Brazil -44.200001 -22.583300 187891 0 -Bauru Brazil -49.116699 -22.316700 220871 0 -Belem Brazil -48.483299 -1.450000 1120777 0 -Belo Horizonte Brazil -67.500000 -2.616700 2122073 0 -Blumenou Brazil -49.116699 -26.916700 192871 0 -Braganca Paulista Brazil -46.566700 -22.916700 105462 0 -Brasilia DF Brazil -47.666698 -15.916700 1576657 1 -Cabo Brazil -35.000000 -8.266700 121864 0 -Cacoeiro de Itapemirin Brazil -39.000000 -12.500000 138488 0 -Camacari Brazil -38.266701 -12.733300 108453 0 -Campina Grande Brazil -35.833302 -7.250000 280665 0 -Campinas Brazil -47.099998 -22.900000 845057 0 -Campo Grande Brazil -59.233299 -8.733300 386520 0 -Campos Brazil -41.349998 -21.766701 367134 0 -Carapicuiba Brazil -46.833302 -23.516701 267688 0 -Caratinga Brazil -42.099998 -19.833300 110205 0 -Cariacica Brazil -40.383301 -20.250000 243913 0 -Caruaru Brazil -35.916698 -8.250000 191212 0 -Cascavel Brazil -53.483299 -24.983299 201475 0 -Caucaia Brazil -38.750000 -3.733300 109254 0 -Caxias Brazil -71.283302 -4.500000 148750 0 -Caxias do Sul Brazil -51.166698 -29.233299 267869 0 -Chapeco Brazil -52.683300 -27.233299 101230 0 -Codo Brazil -43.849998 -4.466700 118946 0 -Colatina Brazil -40.616699 -19.583300 106345 0 -Contagem Brazil -44.099998 -19.900000 386272 0 -Criciuma Brazil -49.416698 -28.750000 128818 0 -Cuiaba Brazil -56.083302 -15.533300 283075 0 -Curitiba Brazil -49.416698 -25.416700 1285027 0 -Diadema Brazil -46.616699 -23.700001 322283 0 -Divinapolis Brazil -44.916698 -20.133301 140458 0 -Dourados Brazil -54.833302 -22.150000 124241 0 -Duque de Caxias Brazil -43.316700 -22.750000 666128 0 -Embu Brazil -46.849998 -23.650000 120206 0 -Feira de Santana Brazil -38.883301 -12.283300 356660 0 -Florianopolis Brazil -48.516701 -27.583300 218853 0 -Fortaleza Brazil -38.583302 -3.750000 1588709 0 -Foz do Iguacu Brazil -54.516701 -25.549999 183412 0 -Franca Brazil -47.450001 -20.549999 183595 0 -Goiania Brazil -49.299999 -16.716700 928046 0 -Governador Valedares Brazil -41.950001 -18.850000 217434 0 -Gravatai Brazil -51.000000 -29.933300 141806 0 -Guarapuava Brazil -51.466702 -25.366699 149394 0 -Guarulhos Brazil -46.583302 -23.416700 717723 0 -Ilheus Brazil -39.099998 -14.833300 146139 0 -Imperatriz Brazil -47.333302 -15.500000 236957 0 -Ipatinga Brazil -42.500000 -19.533300 214358 0 -Irece Brazil -41.849998 -11.366700 106943 0 -Itaborai Brazil -42.866699 -22.750000 144945 0 -Itabuna Brazil -39.299999 -14.800000 178733 0 -Itaguai Brazil -43.766701 -22.866699 106154 0 -Itajai Brazil -48.650002 -26.833300 104473 0 -Itapetininga Brazil -48.116699 -23.600000 105878 0 -Itapipoca Brazil -39.583302 -3.483300 109423 0 -Jaboatao Brazil -35.000000 -8.083300 411341 0 -Jacarei Brazil -45.950001 -23.283300 149824 0 -Jacobina Brazil -40.500000 -11.216700 121127 0 -Jequie Brazil -40.099998 -13.866700 127304 0 -Joao Pessoa Brazil -34.883301 -7.100000 397715 0 -Joinville Brazil -48.916698 -26.333300 304414 0 -Juazeiro Brazil -40.500000 -9.416700 153515 0 -Juazeiro do Norte Brazil -39.299999 -7.166700 160361 0 -Juiz de Fora Brazil -43.383301 -21.783300 350687 0 -Jundiai Brazil -46.900002 -23.166700 314909 0 -Lages Brazil -50.333302 -27.816700 143558 0 -Limeira Brazil -47.416698 -22.566700 187820 0 -Linhares Brazil -40.066700 -19.366699 122825 0 -Londrina Brazil -51.216702 -23.299999 347707 0 -Luzianig Brazil -47.950001 -16.266701 101077 0 -Macapa Brazil -51.166698 0.000000 169558 0 -Manaus Brazil -60.000000 -3.100000 834541 0 -Maraba Brazil -49.166698 -5.383300 133559 0 -Marilia Brazil -49.966702 -22.216700 136518 0 -Maringa Brazil -52.033298 -23.433300 197527 0 -Maua Brazil -46.433300 -23.666700 270777 0 -Mogi das Cruzes Brazil -46.333302 -23.750000 234937 0 -Montes Caros Brazil -43.866699 -16.750000 215323 0 -Mossoro Brazil -37.250000 -5.166700 159339 0 -Natal Brazil -60.266701 -6.983300 512241 0 -Nilopolis Brazil -43.416698 -22.816700 166324 0 -Niteroi Brazil -43.099998 -22.900000 442706 0 -Nova Friburgo Brazil -42.566700 -22.266701 143991 0 -Nova Iguacu Brazil -43.466702 -22.750000 1324639 0 -Nova Hamburgo Brazil -51.116699 -29.616699 168460 0 -Olinda Brazil -34.849998 -8.000000 335889 0 -Osasco Brazil -46.766701 -23.533300 594249 0 -Parnaiba Brazil -41.766701 -2.966700 116527 0 -Passo Fundo Brazil -52.333302 -28.266701 138226 0 -Paulista Brazil -34.833302 -7.933300 161447 0 -Pelotas Brazil -52.333302 -31.750000 278427 0 -Petrolina Brazil -67.099998 -2.600000 131208 0 -Petropolis Brazil -43.099998 -22.500000 275076 0 -Piracicaba Brazil -47.666698 -22.750000 252945 0 -Pitanga Brazil -51.716702 -24.750000 100306 0 -Pocos de Caldas Brazil -46.549999 -21.799999 100414 0 -Ponta Grossa Brazil -50.150002 -25.116699 223989 0 -Porto Alegre Brazil -51.166698 -30.049999 1275483 0 -Porto Velho Brazil -63.900002 -8.750000 202011 0 -Presidente Prudente Brazil -51.400002 -22.150000 156319 0 -Ribeirao Preto Brazil -47.833302 -21.166700 384604 0 -Rio Claro Brazil -47.583302 -22.316700 130309 0 -Rio de Janeiro Brazil -43.283298 -22.883301 5615149 0 -Rondonopolis Brazil -54.616699 -16.483299 101642 0 -Salvador Brazil -38.483299 -12.966700 1811367 0 -Santa Cruz do Sul Brazil -52.416698 -29.700001 115350 0 -Santa Luzia Brazil -36.866699 -6.800000 117017 0 -Santa Maria Brazil -53.666698 -29.666700 197177 0 -Santarem Brazil -54.683300 -2.433300 227412 0 -Santo Andre Brazil -46.483299 -23.650000 637010 0 -Santo Angelo Brazil -54.250000 -28.283300 107616 0 -Sao Bernardo do Campo Brazil -46.566700 -23.750000 565620 0 -Sao Carlo Brazil -47.833302 -22.000000 140860 0 -Sao Goncalo Brazil -43.083302 -22.799999 731061 0 -Sao Joao de Meriti Brazil -43.366699 -22.799999 459103 0 -Sao Jose do Rio Preto Brazil -49.333302 -20.833300 230151 0 -Sao Jose dos Campos Brazil -45.866699 -23.116699 374526 0 -Sao Leopoldo Brazil -51.183300 -29.750000 114126 0 -Sao Luis Brazil -44.250000 -2.650000 564434 0 -Sao Paolo Brazil -46.633301 -23.549999 10199186 0 -Serra Brazil -40.266701 -20.100000 101837 0 -Sete Lagoas Brazil -44.250000 -19.483299 121895 0 -Sobral Brazil -70.433296 -9.166700 127919 0 -Sorocaba Brazil -47.533298 -23.500000 328787 0 -Sumare Brazil -47.266701 -22.833300 151100 0 -Susano Brazil -46.299999 -23.516701 129562 0 -Taboao da Serra Brazil -46.783298 -23.616699 122534 0 -Taubate Brazil -45.599998 -23.000000 205941 0 -Teresina Brazil -42.766701 -5.150000 476102 0 -Teresopolis Brazil -42.983299 -22.450001 116252 0 -Uberaba Brazil -47.950001 -19.783300 245921 0 -Uberlandia Brazil -48.283298 -18.950001 313651 0 -Uruguaiana Brazil -57.083302 -29.750000 105919 0 -Varzea Grande Brazil -42.083302 -6.533300 102524 0 -Viamao Brazil -51.000000 -30.083300 149392 0 -Vila Velha Brazil -51.233299 3.266700 253203 0 -Vitoria Brazil -52.000000 -2.866700 254448 0 -Vitoria da Conquista Brazil -40.866699 -14.883300 198781 0 -Volta Redonda Brazil -44.083302 -22.516701 220084 0 -Antofagasta Chile -70.383301 -23.666700 203067 0 -Chillan Chile -72.166702 -36.616699 126581 0 -Concepcion Chile -73.050003 -36.833302 280713 0 -Iquique Chile -70.133301 -20.250000 127491 0 -Osorno Chile -73.233299 -40.583302 101948 0 -Puente Alto Chile -70.583298 -33.533298 125297 0 -Punta Arenas Chile -70.933296 -53.166698 107064 0 -Rancagua Chile -70.750000 -34.166698 157209 0 -San Bernardo Chile -70.750000 -33.616699 136224 0 -Santiago Chile -70.666702 -33.500000 4099714 1 -Talca Chile -71.666702 -35.466702 137621 0 -Temuco Chile -72.666702 -38.750000 168120 0 -Valdivia Chile -73.250000 -39.766701 104910 0 -Valparaiso Chile -71.666702 -33.083302 273213 0 -Armenia Colombia -75.666702 4.533300 250000 0 -Barrancabermeja Colombia -73.900002 7.100000 250000 0 -Barranquilla Colombia -74.833298 11.000000 250000 0 -Bello Colombia -75.683296 6.333300 250000 0 -Bogota Colombia -74.083298 4.633300 250000 1 -Bucaramanga Colombia -73.166702 7.133300 250000 0 -Buenaventura Colombia -77.033302 3.900000 250000 0 -Cali Colombia -76.500000 3.400000 250000 0 -Cartago Colombia -75.916702 4.750000 250000 0 -Cienago Colombia -74.250000 11.016700 250000 0 -Cucuta Colombia -72.516701 7.916700 250000 0 -Dos Quebradas Colombia -75.650002 4.850000 250000 0 -Floridablanca Colombia -73.099998 7.066700 250000 0 -Ibague Colombia -75.333298 4.416700 250000 0 -Itagui Colombia -75.599998 6.166700 250000 0 -Manizales Colombia -75.533302 5.050000 250000 0 -Medellin Colombia -75.599998 6.250000 250000 0 -Monteria Colombia -75.083298 8.750000 250000 0 -Neiva Colombia -75.250000 2.966700 250000 0 -Palmira Colombia -76.283302 3.550000 250000 0 -Pasto Colombia -77.283302 1.200000 250000 0 -Popayan Colombia -76.533302 2.450000 250000 0 -Pereira Colombia -75.766701 4.783300 250000 0 -Santa Marta Colombia -74.166702 11.300000 250000 0 -Soacha Colombia -74.216698 4.583300 250000 0 -Soledad Colombia -74.800003 10.900000 250000 0 -Valledupar Colombia -73.099998 10.516700 250000 0 -Villavicencio Colombia -73.633301 4.150000 250000 0 -Quito Ecuador -78.500000 0.233300 918674 1 -Georgetown Guyana -58.166698 6.766700 72049 1 -Asuncion Paraguay -57.666698 -25.250000 454881 1 -Arequipa Peru -71.533302 -16.416700 545165 0 -Callao Peru -77.133301 -12.083300 515200 0 -Chiclayo Peru -79.783302 -6.783300 349249 0 -Chimbote Peru -78.566704 -9.066700 255078 0 -Cuzco Peru -71.949997 -13.533300 235857 0 -Huancayo Peru -75.199997 -12.083300 190226 0 -Ica Peru -75.800003 -14.033300 128392 0 -Iquitos Peru -73.216698 -3.850000 229557 0 -Juliaca Peru -70.150002 -15.483300 106340 0 -Lima Peru -77.050003 -12.100000 5008400 1 -Piura Peru -80.633301 -5.250000 265866 0 -Pucallpa Peru -74.550003 -8.350000 117755 0 -Tacna Peru -70.250000 -18.000000 125345 0 -Trujillo Peru -79.000000 -8.100000 421345 0 -Paramaribo Suriname -55.233299 5.866700 110867 1 -Barcelona Pto. La Cruz Venezuela -64.716698 10.133300 156519 0 -Barinas Venezuela -70.250000 8.600000 158309 0 -Barquisimeto Venezuela -69.300003 10.050000 661265 0 -Cabimas Venezuela -71.449997 10.433300 162097 0 -Cuidad Bolivar Venezuela -63.599998 8.100000 240954 0 -Cuidad Guayana Venezuela -62.616699 8.366700 458789 0 -Guarenas Venezuela -66.616699 10.466700 101464 0 -Los Teques Venezuela -67.016701 10.416700 148602 0 -Maracay Venezuela -67.466698 10.333300 496662 0 -Maturin Venezuela -63.166698 9.750000 205076 0 -Merida Venezuela -71.133301 8.400000 188160 0 -San Cristobal Venezuela -72.250000 7.766700 234905 0 -Valencia Venezuela -67.983299 10.233300 856455 0 -Balkh Afghanistan 67.099998 36.700001 123900 0 -Herat Afghanistan 62.166698 34.333302 168200 0 -Kandahar Afghanistan 65.783302 31.600000 213900 0 -Bavisal Bangladesh 90.333298 22.500000 250000 0 -Chittagong Bangladesh 91.800003 22.333300 250000 0 -Comilla Bangladesh 91.166702 23.466700 250000 0 -Dacca Bangladesh 90.366699 23.700001 250000 1 -Jessore Bangladesh 89.199997 23.166700 250000 0 -Khulna Bangladesh 89.566704 22.816700 250000 0 -Mymenshing Bangladesh 90.383301 24.750000 250000 0 -Pabna Bangladesh 89.250000 24.000000 250000 0 -Rajshahi Bangladesh 88.666702 24.400000 250000 0 -Rangpur Bangladesh 89.349998 25.750000 250000 0 -Saidpur Bangladesh 89.000000 25.799999 250000 0 -Sylhet Bangladesh 91.849998 24.883301 250000 0 -Thimphu Bhutan 89.750000 27.516701 8922 1 -Bandar Seribegawan Brunei Daruissalam 114.966698 4.933300 49902 1 -Bassein Burma 94.750000 16.766701 144092 0 -Moulmein Burma 97.650002 16.500000 219991 0 -Pegu Burma 96.516701 17.299999 150447 0 -Rangoon Burma 96.166702 16.783300 2458712 1 -Anqing China 119.666702 30.766701 449310 0 -Anshan China 122.966698 41.049999 1195580 0 -Anshun China 105.949997 26.033300 200680 0 -Baicheng China 122.800003 45.616699 276420 0 -Baoding China 115.433296 38.900002 495140 0 -Baoji China 107.150002 34.383301 341240 0 -Beihai China 109.166702 21.483299 173740 0 -Beijing China 116.433296 39.916698 5531460 1 -Bengbu China 117.449997 32.933300 550360 0 -Benxi China 123.750000 41.333302 773730 0 -Botou China 117.550003 38.049999 1075920 0 -Cangzhou China 116.900002 38.316700 280250 0 -Changchun China 125.516701 43.833302 1747410 0 -Changde China 111.683296 29.100000 213890 0 -Changzhi China 113.099998 36.183300 450320 0 -Changzhou China 120.900002 31.650000 533940 0 -Chaozhou China 116.599998 23.700001 162280 0 -Chengde China 117.883301 40.966702 326910 0 -Chenghwa China 88.116699 47.866699 137236 0 -Chenzhou China 113.033302 25.799999 165930 0 -Chifeng China 118.933296 42.283298 293460 0 -Chongli China 115.199997 40.950001 129952 0 -Chongqing China 103.666702 30.633301 2673170 0 -Dandong China 124.400002 40.133301 545180 0 -Daqing China 124.983299 46.616600 758430 0 -Datong China 113.199997 40.200001 962470 0 -Daxian China 107.516701 31.266701 193490 0 -Dezhou China 116.183296 37.483299 258860 0 -Dongshan China 117.416603 23.700001 958360 0 -Dukou China 101.750000 26.500000 497330 0 -Duyun China 107.533302 26.983299 102380 0 -Echeng China 114.866699 30.383301 119040 0 -Fengcheng China 115.783302 28.183300 995900 0 -Fengshan China 107.083298 24.650000 102109 0 -Foshan China 113.133301 23.049999 273840 0 -Fuxin China 121.650002 42.066700 646580 0 -Fuyang China 115.849998 32.933300 177850 0 -Fuzhou (Fujian Sheng) China 119.283302 26.150000 1111550 0 -Fuzhou (Jiangxi Sheng) China 116.250000 28.049999 158300 0 -Ganzhou China 114.849998 25.866699 362880 0 -Gejiu China 103.083298 23.416700 352980 0 -Guangzhou China 113.333298 23.133301 3181510 0 -Guilin China 110.183296 25.350000 432410 0 -Guiyang China 106.116600 26.100000 1350190 0 -Handan China 114.483299 36.583302 929530 0 -Hangzhou China 120.116699 30.299999 1171450 0 -Hanzhong China 107.050003 33.150002 374270 0 -Hebi China 114.133301 35.950001 336430 0 -Hefei China 117.300003 31.916700 795420 0 -Hegang China 130.500000 47.599998 592470 0 -Hengyang China 112.466698 26.950001 531730 0 -Hohhoit China 111.616699 40.816700 754120 0 -Huaibei China 116.800003 34.000000 444820 0 -Huainan China 117.099998 32.683300 1029220 0 -Huangshi China 115.083298 30.216600 375640 0 -Huizhou China 114.466698 23.133301 158380 0 -Hunjiang China 126.383301 41.900002 694160 0 -Huzhou China 120.066704 30.600000 952900 0 -Llan China 104.016602 24.766600 167550 0 -Linchang China 114.610001 36.750000 107970 0 -Jiamusi China 130.433304 46.983299 540190 0 -Jiaxing China 120.866699 30.850000 655130 0 -Jiayi China 108.316704 25.533300 238713 0 -Jilin China 126.583298 43.883301 1088420 0 -Jilong China 114.916702 22.799999 324040 0 -Jinan China 117.000000 36.683300 1359130 0 -Jingdezhen China 117.199997 29.283300 611030 0 -Jining (Shandong Sheng) China 116.666702 35.416698 190420 0 -Jining (Shanxi Sheng) China 113.033302 40.950001 158570 0 -Jinzhou China 121.099998 41.116699 599490 0 -Jiujiang China 115.983299 29.733299 350910 0 -Jixi China 130.966705 45.299999 781800 0 -Kaifeng China 114.333298 34.783298 602230 0 -Kaiyuan China 124.500000 42.666698 223420 0 -Karamay China 84.500000 45.799999 156970 0 -Korla China 86.166702 41.799999 117690 0 -Lanzhou China 103.750000 36.016701 1364480 0 -Laohekou China 111.666702 32.366699 101500 0 -Lengshuijiang China 111.433296 27.666700 254590 0 -Lianyungang China 117.366699 34.500000 397090 0 -Liaoyang China 123.199997 41.266701 470020 0 -Linchuan China 116.266701 27.933300 619060 0 -Linfen China 111.500000 36.000000 208210 0 -Liupanshui China 104.866699 26.549999 2107100 0 -Liuzhou China 109.250000 24.283300 581980 0 -Longyan China 117.033302 25.100000 346700 0 -Loudi China 115.166702 38.316700 104500 0 -Lu'an China 116.500000 31.799999 145880 0 -Luohe China 114.000000 33.549999 157670 0 -Luoyana China 112.433296 34.783298 951610 0 -Luzhou China 105.416702 28.916700 305220 0 -Ma'anshan China 118.533302 31.816700 351880 0 -Maoming China 110.933296 21.833300 412540 0 -Meizhou China 117.300003 23.850000 111450 0 -Mianyang China 104.766701 31.466700 768500 0 -Mudanjiang China 129.600006 44.583302 581300 0 -Nanchang China 115.883301 28.683300 1075710 0 -Nanchong China 106.099998 30.900000 228340 0 -Najiang China 106.883301 32.366699 2091400 0 -Nanning China 108.083298 22.833300 889790 0 -Nanping China 116.683296 38.099998 407810 0 -Nantong China 120.849998 32.083302 402990 0 -Nanyang China 112.516701 33.099998 288300 0 -Neijiang China 105.050003 29.533300 270750 0 -Ningbo China 121.550003 29.900000 478940 0 -Pingdingshan China 124.766701 41.433300 470330 0 -Pingyang China 120.416603 27.750000 510390 0 -Pingxiang China 113.133301 27.100000 1189030 0 -Qingdao China 120.316704 36.066700 1172370 0 -Qingjiang China 115.516701 28.066700 234750 0 -Qinhuangdao China 119.616699 39.933300 394210 0 -Quzhou China 114.916702 36.816700 981280 0 -Sanmenxia China 111.283302 34.766701 147050 0 -Sanming China 117.583298 26.266701 199230 0 -Shanghai China 121.500000 31.250000 6292960 0 -Shangrao China 117.966698 28.433300 664780 0 -Shangqiu China 115.116699 34.450001 186760 0 -Shantou China 116.650002 23.383301 717620 0 -Shanzhong China 110.949997 36.400002 235667 0 -Shaoguan China 113.550003 24.900000 370550 0 -Shaoyang China 111.416702 27.033300 396600 0 -Shashi China 112.333298 30.266701 238960 0 -Shenyang China 123.433296 41.833302 3944240 0 -Shenzhen China 114.133301 22.516701 98060 0 -Shijianzhuang China 114.449997 38.049999 1068720 0 -Shiyan China 110.750000 32.516701 306830 0 -Shizuishan China 106.366699 39.066700 297790 0 -Siping China 114.166702 33.416698 333850 0 -Suizhou China 118.750000 29.133301 142970 0 -Suzhou China 120.616699 31.299999 669940 0 -Tai'an China 117.000000 36.333302 1274770 0 -Taipei China 121.500000 25.033300 1769568 0 -Taiyan China 112.500000 38.000000 1745820 0 -Taizhong China 120.550003 24.016600 448140 0 -Taizhou China 93.016701 30.000000 161200 0 -Tangshan China 118.083298 39.616699 1407840 0 -Tansyuan China 111.750000 30.833300 105841 0 -Tianjin China 117.199997 39.133301 5152180 0 -Tianshui China 105.966698 34.416698 185230 0 -Tiefa China 123.083298 42.066700 145890 0 -Tieling China 123.866699 42.316700 220850 0 -Tongchuan China 109.033302 35.083302 353520 0 -Tonghua China 125.833298 41.750000 359960 0 -Tongliao China 122.250000 43.616699 213470 0 -Tongling China 117.666702 30.950001 184060 0 -Tunxi China 118.333298 29.716700 103560 0 -Wanxian China 108.333298 30.900000 267060 0 -Weifang China 119.166702 36.733299 393410 0 -Weihai China 122.066704 37.500000 205010 0 -Wenzhou China 120.666702 28.033300 515650 0 -Wuhan China 114.316704 30.583300 3287720 0 -Wuhu China 118.500000 31.350000 449070 0 -Wuxi China 120.316704 31.583300 798310 0 -Wuzhou China 111.349998 23.500000 242250 0 -Xi'an China 108.900002 34.266701 2185040 0 -Xiamen China 118.083298 24.466700 507390 0 -Xiangfan China 112.050003 32.083302 323000 0 -Xiangtan China 112.900002 27.850000 492040 0 -Xiangtan (Hebei Sheng) China 116.000000 39.000000 334210 0 -Xiaguan China 100.150002 25.549999 117190 0 -Xianyang China 108.699997 34.366699 501810 0 -Xichang China 102.266701 27.866699 145840 0 -Xining China 101.916702 36.583302 566650 0 -Xinxiang China 113.849998 35.266701 525280 0 -Xinyang China 112.983299 27.133301 240000 0 -Xinzhou China 112.750000 38.416698 208038 0 -Xuchang China 113.800003 34.049999 218960 0 -Xuzhou (Jiangsu Sheng) China 117.300003 34.283298 776770 0 -Xuzhou (Anhui Sheng) China 117.000000 32.000000 191710 0 -Yan'an China 109.349998 36.666698 254420 0 -Yangquan China 113.483299 37.866699 477570 0 -Yangzhou China 119.366699 32.366699 302090 0 -Yanji China 129.533295 42.866699 176000 0 -Yantai China 121.366699 37.500000 385180 0 -Yibin China 104.583298 28.833300 245240 0 -Yichang China 111.750000 35.516701 365000 0 -Yichun (Heilongjiang Sheng) China 129.166702 47.683300 755830 0 -Yichun (Jiangxi Sheng) China 114.366699 27.750000 171720 0 -Yinchuan China 106.316704 38.500000 354100 0 -Yingkow China 122.150002 40.716702 422590 0 -Yining China 81.466698 43.833302 257280 0 -Yiyang China 112.266701 28.750000 165040 0 -Yuci China 112.733299 37.666698 270890 0 -Yueyang China 113.050003 29.383301 971790 0 -Zaozhuang China 117.633301 34.883301 1244020 0 -Zhangjiakou China 114.983299 40.849998 617120 0 -Zhangzhou China 117.666702 24.516701 283490 0 -Zhanjiang China 110.333298 21.166700 853970 0 -Zhaoqing China 112.416702 23.066700 172080 0 -Zhaotong China 103.650002 28.333300 133080 0 -Zhengzhou China 113.633301 34.750000 1404050 0 -Zhenjiang China 119.500000 32.133301 345560 0 -Zhoukou China 106.066704 31.000000 213890 0 -Zhuhai China 113.500000 22.283300 131860 0 -Zhumadian China 114.016701 32.983299 150440 0 -Zhuzhou China 113.116699 27.883301 382950 0 -Zibo China 118.016701 36.849998 2197660 0 -Zigong China 104.783302 29.416700 866020 0 -Zunyi China 106.833298 27.683300 350670 0 -Limasso Cyprus 33.049999 34.666698 250000 0 -Nicosia Cyprus 33.349998 35.150002 250000 1 -Phnom Penh Democratic Kampuchea 104.916702 11.583300 393995 1 -Aden Democratic Yemen 45.049999 12.783300 271590 1 -Adoni India 77.266701 15.633300 108939 0 -Agartala India 91.250000 23.816700 132186 0 -Agra India 78.000000 27.150000 694191 0 -Ahmedabad India 72.666702 23.000000 2059725 0 -Ahmednagar India 74.766701 19.116699 143937 0 -Ajmer India 74.666702 26.483299 375593 0 -Akola India 77.083298 20.666700 225412 0 -Aligarh India 76.250000 25.916700 320861 0 -Allahabad India 81.966698 25.416700 616051 0 -Alleppey India 76.366699 9.500000 169940 0 -Alwar India 76.583298 27.533300 145795 0 -Ambala India 76.816704 30.316700 104565 0 -Amravati (Amraoti) India 77.750000 20.916700 261404 0 -Amritsar India 74.933296 31.583300 594844 0 -Amroha India 78.483299 28.900000 112682 0 -Anantapur India 77.083298 14.700000 119531 0 -Arrah India 84.666702 25.566700 125111 0 -Asansol India 87.016701 23.666700 183375 0 -Aurangabad India 84.383301 24.766701 284607 0 -Baharampur India 88.300003 24.100000 250000 0 -Bally India 88.333298 22.650000 147735 0 -Bangalore India 77.583298 12.966700 2628593 0 -Baranagar India 88.366699 22.633301 170343 0 -Bareilly India 79.400002 28.333300 386734 0 -Barrackpur India 88.500000 22.733299 115516 0 -Batala India 75.283302 31.799999 250000 0 -Bhatinda India 74.966599 30.166599 124453 0 -Belgaum India 74.599998 15.900000 274430 0 -Bellary India 76.900002 15.183300 201579 0 -Berhampur India 84.849998 19.350000 162550 0 -Bermo India 85.133301 23.566601 250000 0 -Bhadravati India 75.633301 13.900000 53551 0 -Bhagalpur India 86.983299 25.233299 225062 0 -Bharatpur India 77.500000 27.250000 105274 0 -Bharuch India 73.033302 21.666700 110070 0 -Bhatpara India 88.516701 22.850000 265419 0 -Bhavnagar India 72.166702 21.750000 307121 0 -Bheemavaram India 81.583298 16.566601 101894 0 -Bhilwara India 74.650002 25.383301 122625 0 -Bhiwandi India 73.133301 19.350000 115298 0 -Bhiwani India 76.166702 28.833300 101277 0 -Bhopal India 77.466698 23.283300 671018 0 -Bhubaneswar India 85.833298 20.216700 21921 0 -Bhusawal India 75.833298 21.016701 123133 0 -Bihar India 85.516701 25.216700 151343 0 -Bijapur India 75.800003 16.783300 147313 0 -Bikaner India 73.366699 28.016701 253174 0 -Bokaro Steel City India 85.916702 23.766701 224099 0 -Bulandshahr India 77.816704 28.500000 103436 0 -Burhanpur India 76.133301 21.299999 140986 0 -Calcutta India 88.333298 22.500000 3305006 0 -Calicut India 75.750000 11.250000 394447 0 -Cannanore India 75.383301 11.883300 60904 0 -Chandan Nagar India 88.349998 22.850000 101925 0 -Chandigarh India 76.783302 30.716700 379660 0 -Chandrapur India 79.349998 19.966700 115777 0 -Chapra India 84.833298 25.799999 111564 0 -Coimbatore India 76.949997 11.000000 704514 0 -Cuddalore India 79.766701 11.716700 127625 0 -Cuddapaph India 78.833298 14.500000 103125 0 -Cuttack India 85.933296 20.433300 269950 0 -Darbhanga India 85.900002 26.166700 176301 0 -Davanagere India 75.866699 14.500000 196621 0 -Dehra Dun India 78.050003 30.316700 211416 0 -Delhi India 77.233299 28.666700 4884234 0 -Dhanbad India 86.533302 23.783300 120221 0 -Dindigul India 78.000000 10.383300 164103 0 -Durgapur India 87.150002 23.500000 311798 0 -Durg-Bhilai Nagar India 81.333298 21.200001 250000 0 -Eluru (Ellore) India 81.166702 16.750000 168154 0 -Erode India 77.716698 11.350000 142252 0 -Etawah India 79.099998 26.799999 112174 0 -Faizabad-Ayodhya India 82.166702 26.750000 101873 0 -Faridabad India 77.300003 28.400000 330864 0 -Farrukhabad-Fategarh India 79.533302 27.500000 145793 0 -Firozabad India 78.416702 27.166700 202338 0 -Gadag-Betgeri India 75.750000 15.500000 117368 0 -Garden Reach India 88.283302 22.549999 191107 0 -Gaya India 85.000000 24.799999 247075 0 -Ghaziabad India 77.433296 28.650000 271730 0 -Gondiya India 80.166702 21.500000 100423 0 -Gorakhpur India 83.383301 26.750000 290814 0 -Gulbarga India 76.783302 17.366699 221325 0 -Guntur India 80.449997 16.333300 367699 0 -Gurgaon India 77.016701 28.450001 250000 0 -Gwalior India 78.166702 26.200001 539015 0 -Hapur India 77.783302 28.716700 102837 0 -Hardwar India 78.150002 29.966700 115513 0 -Hisar India 75.750000 29.166700 131309 0 -Hospet India 76.333298 15.266700 250000 0 -Houghly-Chinsura India 88.416603 22.883301 128918 0 -Howrah India 88.333298 22.583300 744429 0 -Hubli India 75.233299 15.333300 527108 0 -Hyderabad India 78.433296 17.366699 2093488 0 -Ichalakaranji India 74.550003 16.666599 133751 0 -Imphal India 93.916702 24.783300 156622 0 -Indore India 75.900002 22.700001 829327 0 -Jabalpur India 79.983299 23.166700 614162 0 -Jalgaon India 75.650002 21.016701 145335 0 -Jalna India 75.966698 19.833300 122276 0 -Jammu India 74.900002 32.716702 206135 0 -Jamnagar India 70.099998 22.466700 277615 0 -Jamshedpur India 86.199997 22.783300 438385 0 -Jaunpur India 82.683296 25.733299 105140 0 -Jhansi India 78.566704 25.450001 246172 0 -Jodhpur India 73.133301 26.299999 506345 0 -Jullundur India 75.666702 31.299999 408196 0 -Jungada India 80.916702 19.833300 188646 0 -Kamarhati India 88.349998 22.750000 234951 0 -Kanchipuram India 79.733299 12.833300 130926 0 -Kanpur India 80.233299 26.450001 1481789 0 -Karaikudi India 78.766701 10.066700 250000 0 -Karnal India 76.966698 29.683300 132107 0 -Khandwa India 76.383301 21.816700 114725 0 -Kharagpur India 86.550003 25.116699 150475 0 -Kolar Gold Fields India 78.266701 12.900000 77679 0 -Kolhapur India 74.333298 16.666700 340625 0 -Kotah India 75.966698 25.183300 358241 0 -Kumbakonam India 79.400002 10.983300 132832 0 -Kurnool India 78.016701 15.850000 206362 0 -Latur India 76.566704 18.400000 111986 0 -Lucknow India 80.900002 26.833300 895721 0 -Ludhiana India 75.866699 30.933300 607052 0 -Madurai India 78.116699 9.916700 820891 0 -Malegaon India 74.633301 20.533300 245883 0 -Mandya India 76.916702 12.566700 100285 0 -Mangalore India 74.849998 12.900000 172252 0 -Meerut India 77.699997 29.000000 417395 0 -Mirzapur-cum-Vindhayachal India 82.750000 25.166700 127787 0 -Moradabad India 78.750000 28.083300 330051 0 -Murwara India 80.466698 23.816700 77862 0 -Muzaffarnagar India 77.666702 29.433300 171816 0 -Muzaffarpur India 85.383301 26.116699 190416 0 -Mysore India 76.616699 12.300000 441754 0 -Nabadwip India 88.383301 23.400000 109108 0 -Nadiad India 72.916702 22.700001 142689 0 -Nager Coil India 77.500000 8.183300 171648 0 -Nagpur India 79.199997 21.166700 1219461 0 -Naihati India 88.433296 22.900000 114607 0 -Nasik India 73.866699 20.000000 262428 0 -Navasari India 72.916702 20.850000 106793 0 -Nellore India 80.000000 14.483300 237065 0 -Nizamabad India 78.083298 18.666700 183061 0 -Onadal India 87.199997 23.600000 14921 0 -Panihati India 88.366699 22.700001 205718 0 -Panipat India 76.966698 29.400000 137927 0 -Parbhani India 76.849998 19.266701 109364 0 -Pathankot India 75.716698 32.266701 110039 0 -Patiala India 76.449997 30.350000 205141 0 -Pondicherri India 79.833298 11.983300 162639 0 -Poona India 73.966698 18.566700 1203351 0 -Porbandar India 69.666702 21.666700 115182 0 -Proddatur India 78.566704 14.750000 107070 0 -Puri India 85.900002 19.816700 100942 0 -Purnia India 87.516701 25.750000 250000 0 -Quilon India 76.633301 8.883300 137943 0 -Raichur India 77.333298 16.250000 124762 0 -Raipur India 81.750000 21.283300 338245 0 -Rajkot India 70.933296 22.250000 445076 0 -Rohtak India 76.716698 28.916700 166767 0 -Rourkela India 84.833298 22.233299 214521 0 -Salem India 78.183296 11.666700 361394 0 -Sambal India 84.066704 21.466700 108232 0 -Serampore India 88.349998 22.733299 127304 0 -Shahjahanpur India 79.916702 27.883301 185396 0 -Shillong India 91.883301 25.566700 109244 0 -Shimoga India 75.516701 13.933300 151783 0 -Sholapur India 75.933296 17.716700 511103 0 -Sikar India 75.199997 27.549999 102970 0 -Siliguri India 88.500000 26.700001 154378 0 -Sonipat India 77.016701 29.000000 109369 0 -South Dum Dum India 88.433296 22.650000 230266 0 -South Suburban India 88.366600 22.483299 394775 0 -Srinagar India 75.216698 13.433300 594775 0 -Surat India 72.900002 21.166700 776583 0 -Tenali India 80.599998 16.216700 119257 0 -Thanjavur India 79.150002 10.766700 184015 0 -Thana India 72.983299 19.200001 309897 0 -Tiruchirapalli India 78.716698 10.833300 362045 0 -Tirunelveli India 77.716698 8.750000 128850 0 -Tirupati India 79.416702 13.650000 115292 0 -Tiruppur India 77.333298 11.083300 165223 0 -Titagarh India 88.400002 22.733299 104534 0 -Trichur India 76.233299 10.533300 250000 0 -Trivandrum India 76.949997 8.500000 483086 0 -Tumkur India 77.099998 13.333300 108670 0 -Tuticorin India 78.166702 8.800000 192949 0 -Udaipur India 73.733299 24.600000 232588 0 -Ujjain India 75.833298 23.183300 273668 0 -Ulhasnagar India 73.133301 19.250000 273668 0 -Vadodara (Baroda) India 73.233299 22.316700 734473 0 -Valparai India 76.966698 10.316700 115452 0 -Varanasi India 83.000000 25.333300 708647 0 -Vellore India 79.150002 12.933300 174247 0 -Vijayawada India 80.666702 16.566700 454577 0 -Visakhapatnam India 83.333298 17.750000 565321 0 -Vizianagarm India 83.500000 18.116699 114806 0 -Wadhwan India 71.716698 22.733299 250000 0 -Warangal India 79.583298 18.000000 335150 0 -Yamunagar India 77.283302 30.116699 109304 0 -Ambon Indonesia 128.166702 -3.683300 208898 0 -Balikpapan Indonesia 116.233299 -1.033300 280675 0 -Bandjarmasin Indonesia 114.583298 -3.333300 381286 0 -Bogor Indonesia 106.750000 -6.566700 247409 0 -Cirebon Indonesia 108.550003 -6.766700 223776 0 -Djambi Indonesia 103.500000 -1.633300 230373 0 -Jakarta Indonesia 106.750000 -6.133300 6503449 1 -Kediri Indonesia 112.016701 -7.750000 221830 0 -Madium Indonesia 111.550003 -7.616700 150562 0 -Magelang Indonesia 110.183296 -7.466700 123484 0 -Malang Indonesia 112.750000 -7.983300 511780 0 -Manado Indonesia 124.916702 1.533300 217519 0 -Medan Indonesia 98.650002 3.583300 1378955 0 -Padang Indonesia 100.349998 -1.000000 480922 0 -Pekalongan Indonesia 109.666702 -6.883300 132558 0 -Pekan Baru Indonesia 101.250000 0.500000 186262 0 -Palembang Indonesia 104.750000 -2.983300 787187 0 -Pematang Siantar Indonesia 109.383301 -6.883300 150376 0 -Pontianak Indonesia 109.266701 -0.083300 304778 0 -Probolinggo Indonesia 113.150002 -7.750000 100296 0 -Samarinda Indonesia 117.150002 -0.500000 264718 0 -Semarang Indonesia 110.483299 -6.966700 1026671 0 -Sukabumi Indonesia 106.833298 -6.916700 109994 0 -Surabaja Indonesia 112.750000 -7.233300 12027913 0 -Surakarta Indonesia 110.833298 -7.533300 469888 0 -Tanjung Karang Indonesia 105.300003 -5.366700 284275 0 -Tegal Indonesia 109.116699 -6.866700 131728 0 -Ujung Pandang Indonesia 119.466698 -5.150000 709038 0 -Yogyakarta Indonesia 110.400002 -7.800000 398727 0 -Abadan Iran 48.250000 30.333300 250000 0 -Ahwaz Iran 48.716702 31.283300 471000 0 -Arak Iran 49.700001 34.083302 210000 0 -Ardabil Iran 48.299999 38.250000 222000 0 -Bakhtaran Iran 47.066700 34.316700 531000 0 -Bandar-e-Abbas Iran 56.250000 27.250000 175000 0 -Borujerd Iran 48.799999 33.916698 177000 0 -Dezful Iran 48.466702 32.383301 141000 0 -Esfahan Iran 51.683300 32.683300 927000 0 -Gorgan Iran 54.483299 36.833302 114000 0 -Hamadan Iran 48.583302 34.766701 234000 0 -Karaj Iran 50.966702 35.799999 526000 0 -Kashan Iran 51.583302 33.983299 110000 0 -Kerman Iran 57.083302 30.299999 239000 0 -Kermanshah Iran 47.000000 34.383301 250000 0 -Khoramabad Iran 48.349998 33.483299 199000 0 -Khoramshahr Iran 48.250000 30.483299 250000 0 -Mashhad Iran 59.566700 36.266701 1120000 0 -Masjed Soleyman Iran 49.299999 31.983299 117000 0 -Najafabad Iran 51.250000 32.666698 114000 0 -Qazvin Iran 50.000000 36.266701 244000 0 -Qom Iran 50.950001 34.650002 424000 0 -Rasht Iran 49.633301 37.299999 260000 0 -Rezaiyeh Iran 45.033298 37.533298 250000 0 -Sabzewar Iran 57.633301 36.216702 108000 0 -Sanandai Iran 47.016701 35.299999 172000 0 -Sari Iran 53.099998 36.549999 125000 0 -Shiraz Iran 52.566700 29.633301 800000 0 -Tabriz Iran 46.299999 38.083302 852000 0 -Teheran Iran 51.433300 35.666698 5734000 1 -Yazd Iran 54.366699 31.916700 193000 0 -Zahedan Iran 60.833302 29.500000 165000 0 -Zanjan Iran 48.500000 36.666698 176000 0 -Arbil Iraq 44.016701 36.200001 101779 0 -Baghdad Iraq 44.433300 33.333302 1984142 1 -Basra Iraq 47.833302 30.500000 333684 0 -Hilla Iraq 44.483299 32.466702 103544 0 -Kirkuk Iraq 44.433300 35.466702 191294 0 -Mosul Iraq 43.133301 36.349998 310313 0 -Najaf Iraq 44.316700 31.983299 147855 0 -Bat Yam Israel 34.750000 32.016701 131600 0 -Be'er Sheva Israel 34.833302 31.250000 115000 0 -Ben Beraq Israel 34.833302 32.083302 103600 0 -Haifa Israel 34.983299 32.816700 224000 0 -Jerusalem Israel 35.216702 31.783300 463300 1 -Netanya Israel 34.849998 32.333302 110800 0 -Petah Tiqwa Israel 34.883301 32.083302 130000 0 -Ramat Gan Israel 34.799999 32.066700 115700 0 -Rishon Leziyyon Israel 34.799999 31.966700 114400 0 -Tel Aviv-Yafo Israel 34.766701 32.083302 321500 0 -Ageo Japan 139.600006 35.966702 181581 0 -Aizuwakamatsu Japan 139.966705 37.500000 117104 0 -Akashi Japan 135.000000 34.650002 260982 0 -Akita Japan 140.083298 39.733299 296596 0 -Amagasaki Japan 135.383301 34.700001 502270 0 -Anjo Japan 137.083298 34.933300 134322 0 -Aomori Japan 140.716705 40.833302 294726 0 -Asahikawa Japan 142.383301 43.766701 365311 0 -Ashikaga Japan 139.433304 36.349998 168778 0 -Atsugi Japan 139.366699 35.466702 177036 0 -Chofu Japan 139.550003 35.650002 189307 0 -Fuchu Japan 133.199997 34.583302 200423 0 -Fuji Japan 138.616699 35.166698 217596 0 -Fujieda Japan 138.250000 34.900002 114488 0 -Fujinomiya Japan 138.550003 35.266701 114551 0 -Fukui Japan 136.199997 36.066700 248363 0 -Fukuoka Japan 130.500000 33.500000 1175707 0 -Fukushima Japan 140.466705 37.733299 271436 0 -Fukuyama Japan 133.333298 34.583302 362049 0 -Funabashi Japan 139.983307 35.700001 507905 0 -Gifu Japan 136.766693 35.450001 409469 0 -Hachinohe Japan 141.500000 40.500000 243373 0 -Hachioji Japan 139.333298 35.666698 424328 0 -Hadano Japan 139.233307 35.366699 140452 0 -Hakodate Japan 140.733307 41.766701 318315 0 -Hamamatsu Japan 137.699997 34.700001 516826 0 -Himeji Japan 134.666702 34.833302 451075 0 -Hino Japan 139.416702 35.683300 156613 0 -Hirosaki Japan 140.466705 40.566700 178065 0 -Hiroshima Japan 132.449997 34.383301 1055176 0 -Hofu Japan 131.566696 34.033298 118394 0 -Ibaraki Japan 140.166702 36.166698 249074 0 -Ichihara Japan 140.066696 35.533298 241207 0 -Ichikawa Japan 139.916702 35.750000 403458 0 -Ichinomiya Japan 136.833298 35.333302 257167 0 -Irimi Japan 131.233307 34.216702 121421 0 -Ise Japan 136.683304 34.483299 106297 0 -Isezaki Japan 139.183304 36.316700 112915 0 -Ishinomaki Japan 141.300003 38.416698 123595 0 -Itami Japan 135.399994 34.799999 180457 0 -Iwakuni Japan 132.149994 34.166698 112467 0 -Iwatsuki Japan 139.699997 35.950001 101265 0 -Kadoma Japan 137.966599 35.383301 140406 0 -Kagoshima Japan 130.533295 31.616699 529281 0 -Kakamigahara Japan 136.899994 35.400002 125252 0 -Kamakura Japan 139.550003 35.316700 177623 0 -Kanazawa Japan 136.633301 36.500000 421994 0 -Kariya Japan 137.000000 35.000000 113998 0 -Kashihara Japan 135.766693 34.466702 112742 0 -Kasugai Japan 136.949997 35.250000 256973 0 -Kasukabe Japan 139.750000 35.966702 174855 0 -Katsuta Japan 140.533295 36.400002 104568 0 -Kawagoe Japan 139.500000 35.916698 283954 0 -Kawaguchi Japan 139.699997 35.783298 406318 0 -Kawasaki Japan 139.683304 35.533298 1106148 0 -Kiryu Japan 139.300003 36.433300 131623 0 -Kisarazu Japan 139.949997 35.383301 120861 0 -Kishiwada Japan 135.366699 34.466702 185718 0 -Kitakyushu Japan 130.816696 33.866699 1053010 0 -Kitami Japan 143.899994 43.849998 107296 0 -Kodaira Japan 139.500000 35.716702 155148 0 -Kofu Japan 138.566696 35.700001 201172 0 -Komaki Japan 136.916702 35.283298 114525 0 -Komatsu Japan 136.449997 36.416698 107299 0 -Koriyama Japan 140.366699 37.383301 302277 0 -Kumamoto Japan 130.699997 32.833302 551376 0 -Kurashiki Japan 133.716705 34.599998 416118 0 -Kurume Japan 130.483307 33.333302 223148 0 -Kushiro Japan 144.399994 42.966702 216012 0 -Kyoto Japan 135.750000 35.033298 1480355 0 -Machida Japan 139.466705 35.549999 327046 0 -Maebashi Japan 139.066696 36.400002 278997 0 -Matsue Japan 133.066696 35.483299 138780 0 -Matsumoto Japan 137.966705 36.299999 195243 0 -Matsusaka Japan 136.516693 34.549999 116578 0 -Matsuyama Japan 132.783295 33.833302 431372 0 -Mishima Japan 138.899994 35.133301 100849 0 -Mitaka Japan 139.566696 35.700001 162825 0 -Mito Japan 140.483307 36.366699 229326 0 -Miyakonoojo Japan 131.033295 31.716700 132664 0 -Miyazaki Japan 131.449997 31.933300 281645 0 -Moriguchi Japan 135.566605 34.733299 158028 0 -Morioka Japan 141.133301 39.716702 235317 0 -Muroran Japan 140.983307 42.349998 138397 0 -Musashino Japan 139.583298 35.716702 136427 0 -Nagano Japan 138.166702 36.650002 339471 0 -Nagaoka Japan 138.833298 37.450001 183110 0 -Nagareyama Japan 139.899994 35.849998 127147 0 -Nagasaki Japan 129.866699 32.750000 449265 0 -Nagoya Japan 136.883301 35.133301 2130632 0 -Nara Japan 135.816696 34.683300 330419 0 -Narashino Japan 140.033295 35.683300 137415 0 -Niizu Japan 139.116699 37.799999 413282 0 -Nishinomiya Japan 135.366699 34.733299 139359 0 -Nobeoka Japan 131.666702 32.599998 139359 0 -Numazu Japan 138.833298 35.133301 212601 0 -Obihiro Japan 143.166702 42.933300 163923 0 -Oggaki Japan 136.600006 35.366699 145595 0 -Oita Japan 131.600006 33.250000 390281 0 -Okayama Japan 133.899994 34.666698 570796 0 -Okazaki Japan 137.166702 34.966702 285699 0 -Ome Japan 139.283295 35.799999 110828 0 -Omiya Japan 139.649994 35.900002 376373 0 -Omuta Japan 130.433304 33.000000 160132 0 -Ota Japan 140.500000 36.566700 133219 0 -Otsu Japan 135.833298 35.000000 234362 0 -Saga Japan 130.333298 33.250000 166988 0 -Sakata Japan 139.850006 38.916698 102030 0 -Sakura Japan 140.216705 35.716702 125069 0 -Sapporo Japan 141.350006 43.083302 1567724 0 -Sasebo Japan 129.699997 33.166698 251498 0 -Sendai Japan 130.283295 31.833300 688881 0 -Shimizu Japan 138.500000 35.000000 242680 0 -Shimonoseki Japan 130.966705 33.983299 263550 0 -Shizuoka Japan 138.399994 34.983299 468424 0 -Soka Japan 139.816696 35.833302 193484 0 -Suita Japan 135.533295 34.750000 344271 0 -Suzuka Japan 136.616699 34.866699 165809 0 -Tachikawa Japan 139.466705 35.700001 149712 0 -Takamatsu Japan 134.016693 34.333302 327769 0 -Takaoka Japan 137.000000 36.666698 177196 0 -Takasaki Japan 139.000000 36.333302 233748 0 -Tokushima Japan 134.566696 34.049999 256790 0 -Tokuyama Japan 131.800003 34.066700 112014 0 -Tokyo Japan 139.750000 35.666698 18379385 1 -Tomakomai Japan 141.550003 42.650002 158985 0 -Tondabayashi Japan 135.600006 34.500000 103296 0 -Tottori Japan 134.199997 35.533298 137150 0 -Toyama Japan 137.233307 36.700001 313866 0 -Toyohashi Japan 137.366699 34.766701 323276 0 -Toyokawa Japan 137.399994 34.783298 108244 0 -Toyonaka Japan 135.583298 34.799999 408245 0 -Toyota Japan 137.149994 35.083302 309850 0 -Tsu Japan 136.500000 34.683300 149016 0 -Tsuchuira Japan 140.183304 36.083302 119956 0 -Tsuruoka Japan 139.833298 38.700001 100840 0 -Ube Japan 131.266693 33.950001 172654 0 -Ueda Japan 138.216705 36.450001 117188 0 -Uji Japan 135.800003 34.900002 165632 0 -Utsunomiya Japan 139.866699 36.549999 411060 0 -Wakayama Japan 135.166702 34.200001 403380 0 -Yamagata Japan 140.316696 38.266701 242970 0 -Yamaguchi Japan 131.466705 34.166698 121937 0 -Yamato Japan 139.466705 35.466702 178161 0 -Yao Japan 135.616699 34.599998 270178 0 -Yatsushiro Japan 130.583298 32.533298 109992 0 -Yokkaichi Japan 136.633301 34.966702 265299 0 -Yokohama Japan 141.250000 41.066700 3049782 0 -Yonago Japan 133.333298 35.450001 131738 0 -Andong Korea 128.733307 36.616699 114340 0 -Anyang Korea 125.333298 39.650002 361530 0 -Chechon Korea 128.149994 37.083302 102309 0 -Chinju Korea 128.100006 35.166698 227441 0 -Chonchu Korea 128.649994 40.183300 426498 0 -Chuncheon Korea 127.733299 37.966702 163217 0 -Chungiu Korea 127.883301 36.983299 113345 0 -Iri Korea 127.000000 35.983299 192275 0 -Kunsan Korea 126.699997 35.950001 185661 0 -Kwang myong Korea 127.966698 40.099998 219592 0 -Kwangchu Korea 126.750000 35.166698 906129 0 -Kyong ju Korea 126.866699 35.116699 127684 0 -Masan Korea 128.583298 35.166698 449247 0 -Pusan Korea 129.033295 35.083302 3516807 0 -Seoul Korea 127.000000 37.500000 9645932 1 -Suncheon Korea 127.466698 34.933300 121938 0 -Suweon Korea 126.983299 37.266701 430834 0 -Taebaek Korea 126.000000 38.549999 113993 0 -Taegu Korea 128.600006 35.866699 2030672 0 -Kuwait City Kuwait 48.000000 29.333300 78116 1 -Vientaine Lao People's Dem. Rep. 102.583298 18.116699 132253 1 -Beirut Lebanon 35.500000 33.866699 474870 1 -Ipoh Malaysia 101.033302 4.600000 293849 0 -Johore Bharu Malaysia 103.733299 1.483300 246395 0 -Klang Malaysia 101.550003 3.016700 192080 0 -Kota Bahru Malaysia 102.233299 6.116700 167872 0 -Kuala Lumpur Malaysia 101.699997 3.133300 919610 1 -Kuala Terengganu Malaysia 103.116699 5.333300 180296 0 -Kuantan Malaysia 103.316704 3.833300 131547 0 -Petaling Jaya Malaysia 101.616699 3.100000 207805 0 -Seremban Malaysia 101.900002 2.700000 132911 0 -Taiping Malaysia 100.699997 4.900000 146002 0 -Kuching Sarawak 110.333298 1.533300 63525 1 -Male Maldives 73.466698 4.000000 29522 1 -Ulan Bator Mongolia 107.000000 48.000000 515100 1 -Kathmandu Nepal 85.316704 27.700001 235160 1 -Bahawalpur Pakistan 71.783302 29.400000 250000 0 -Faisalabad Pakistan 73.150002 31.416700 250000 0 -Gujranwala Pakistan 74.183296 32.099998 250000 0 -Gujrat Pakistan 74.099998 32.583302 250000 0 -Hyderabad Pakistan 68.400002 25.383301 250000 0 -Karachi Pakistan 67.033302 24.850000 250000 0 -Kasur Pakistan 74.500000 31.116699 250000 0 -Lahore Pakistan 74.366699 31.566700 250000 0 -Mardan Pakistan 72.083298 34.233299 250000 0 -Multan Pakistan 71.599998 30.166700 250000 0 -Nawabshsh Pakistan 68.433296 26.250000 250000 0 -Okara Pakistan 73.516701 30.816700 250000 0 -Peshawar Pakistan 71.666702 34.016701 250000 0 -Quetta Pakistan 67.000000 30.250000 250000 0 -Rahimyar Khan Pakistan 70.333298 28.366699 250000 0 -Sheikhu Pura Pakistan 74.133301 31.700001 250000 0 -Sialkote Pakistan 74.583298 32.483299 250000 0 -Angeles Philippines 120.550003 15.150000 221304 0 -Bacolod Philippines 122.966698 10.633300 306472 0 -Baguio Philippines 120.566704 16.433300 142199 0 -Batangas Philippines 121.016701 13.766700 165210 0 -Butuan Philippines 125.516701 8.933300 202676 0 -Cabanatuan Philippines 120.966698 15.500000 159576 0 -Calbayog Philippines 124.633301 12.066700 111290 0 -Caloocan Philippines 120.966698 14.633300 558062 0 -Dagupan Philippines 120.349998 16.033300 1088800 0 -General Santos Philippines 125.250000 6.083300 179082 0 -Iloilo Philippines 122.550003 10.683300 273432 0 -Legaspi Philippines 123.750000 13.166700 114421 0 -Lipa Philippines 121.166702 13.950000 138989 0 -Lucena City Philippines 121.599998 13.950000 129965 0 -Makati Philippines 121.016701 14.566700 408991 0 -Malabon Philippines 120.949997 14.666700 212930 0 -Manila Philippines 120.966698 14.616700 1728441 0 -Marikina Philippines 121.083298 14.633300 248183 0 -Naga Philippines 123.199997 13.600000 105270 0 -Olongapo Philippines 120.283302 14.816700 183547 0 -Ormoc Philippines 124.599998 11.016700 117202 0 -Pasay Philippines 121.000000 14.550000 340418 0 -Quezon City Philippines 121.033302 14.650000 1420105 1 -San Carlos Philippines 123.383301 10.550000 112090 0 -San Pablo Philippines 121.316704 14.050000 152644 0 -Tacloban Philippines 125.016701 11.250000 114462 0 -Valenzuela Philippines 120.949997 14.733300 275725 0 -Zamboanga Philippines 122.083298 6.916700 403549 0 -Dammam Saudi Arabia 50.099998 26.416700 127844 0 -Huful Saudi Arabia 49.566700 25.333300 101271 0 -Jeddah Saudi Arabia 39.166698 21.500000 561104 0 -Riyadh Saudi Arabia 46.766701 24.650000 198186 1 -Ta'if Saudi Arabia 40.349998 21.250000 666840 0 -Singapore Singapore 103.849998 1.283300 2631000 1 -Dehiwala-Mount Lavinig Sri Lanka 79.866699 6.866700 191000 0 -Jaffna Sri Lanka 80.016701 9.666700 143000 0 -Kandy Sri Lanka 80.666702 7.283300 130000 0 -Moratuwa Sri Lanka 79.883301 6.783300 138000 0 -Aleppo Syrian Arab Republic 37.166698 36.233299 1216000 0 -Al-Kamishli Syrian Arab Republic 41.233299 37.033298 121000 0 -Al-Rakka Syrian Arab Republic 39.016701 35.933300 109000 0 -Damascus Syrian Arab Republic 36.316700 33.500000 1292000 1 -Deir El-Zar Syrian Arab Republic 40.133301 35.333302 109000 0 -Hama Syrian Arab Republic 36.733299 35.150002 214000 0 -Homs Syrian Arab Republic 36.716702 34.733299 431000 0 -Lattakia Syrian Arab Republic 35.783298 35.516701 241000 0 -Bangkok Thailand 100.500000 13.733300 4697071 1 -Chiang Mai Thailand 98.983299 18.799999 101594 0 -Chon Buri Thailand 100.983299 13.400000 115350 0 -Nakhonsi Thammarat Thailand 99.966698 8.400000 102123 0 -Songkhia Thailand 100.583298 7.200000 172604 0 -Adana Turkey 35.316700 37.000000 777554 0 -Adapazari Turkey 30.383301 40.750000 152291 0 -Ankara Turkey 32.833302 39.916698 2235035 1 -Antalya Turkey 30.700001 36.883301 261114 0 -Balikesir Turkey 27.850000 39.616699 149989 0 -Bursa Turkey 29.066700 40.200001 612510 0 -Denizli Turkey 29.083300 37.766701 169130 0 -Diyarbakir Turkey 40.233299 37.916698 305940 0 -Elazig Turkey 39.233299 38.683300 182296 0 -Erzurum Turkey 41.283298 39.950001 246053 0 -Eskisehir Turkey 30.500000 39.766701 366765 0 -Gaziantep Turkey 37.349998 37.066700 478635 0 -Hatay Turkey 30.700001 36.883301 110198 0 -Icel Turkey 34.616699 36.783298 279988 0 -Isparta Turkey 30.533300 37.766701 101215 0 -Istanbul Turkey 28.950001 41.033298 5475982 0 -Izmir Turkey 27.166700 38.416698 1489772 0 -Kahramanmaras Turkey 36.900002 37.566700 210371 0 -Kayseri Turkey 35.466702 38.700001 373937 0 -Kocaeli Turkey 29.916700 40.783298 211121 0 -Konya Turkey 32.500000 37.849998 439181 0 -Kutahya Turkey 29.933300 39.416698 118773 0 -Malatya Turkey 38.299999 38.366699 243138 0 -Manisa Turkey 27.483299 38.599998 127012 0 -Mersin Turkey 34.616699 36.783298 314350 0 -Sakarya Turkey 30.383301 40.750000 224414 0 -Sivas Turkey 37.016701 39.733299 198553 0 -Urfa Turkey 38.750000 37.133301 159194 0 -Van Turkey 43.333302 38.500000 110653 0 -Zonguldak Turkey 31.783300 41.433300 117879 0 -Abu Dhabi United Arab Emirates 54.416698 24.466700 242975 1 -Ai-Ain United Arab Emirates 55.750000 24.183300 101663 0 -Dubai United Arab Emirates 55.283298 25.233299 265702 0 -Sharjah United Arab Emirates 55.433300 25.333300 125149 0 -Buonmathuot Viet Nam 108.616699 13.300000 71815 0 -Bien Hao Viet Nam 106.833298 10.966700 187254 0 -Cantho Viet Nam 105.766701 10.050000 182856 0 -Da Nang Viet Nam 108.233299 16.066700 318653 0 -Haiphong Viet Nam 106.683296 20.833300 385210 0 -Hanoi Viet Nam 105.866699 21.016701 897500 1 -Ho Chi Minh Viet Nam 106.716698 10.766700 2700849 0 -Hon Gai Viet Nam 107.099998 20.950001 114573 0 -Hue Viet Nam 107.583298 16.466700 165710 0 -Longxuyen Viet Nam 105.416702 10.383300 112485 0 -Minh Hai Viet Nam 105.016701 21.549999 72517 0 -Mytho Viet Nam 106.349998 10.350000 101493 0 -Namdinh Viet Nam 106.199997 20.416700 160179 0 -Nhatrang Viet Nam 109.166702 12.250000 172663 0 -Quang Nghia Viet Nam 108.833298 15.150000 41119 0 -Qui Nhon Viet Nam 109.183296 13.783300 127211 0 -Rach Gia Viet Nam 105.083298 9.916700 81075 0 -Thanhhoa Viet Nam 105.800003 19.816700 72646 0 -Viettri Viet Nam 105.433296 21.333300 72108 0 -Vinh Viet Nam 105.683296 18.700001 159753 0 -Sana Yemen 44.233299 15.400000 140339 1 -Tirana Albania 19.816700 41.333302 223991 1 -Andorra La Vella Andorra 1.500000 42.500000 16151 1 -Graz Austria 15.366700 47.083302 243166 0 -Innsbruck Austria 11.416700 47.283298 117287 0 -Klagenfurt Austria 14.333300 46.633301 87321 0 -Linz Austria 14.300000 48.316700 199910 0 -Salzburg Austria 13.050000 47.799999 139426 0 -Wien Austria 16.366699 48.216702 1481215 1 -Anderlecht Belgium 4.300000 50.833302 103796 0 -Antwerpen Belgium 4.416700 51.216702 483199 0 -Bruges Belgium 3.233300 51.216702 117799 0 -Bruxelles Belgium 4.350000 50.833302 250000 1 -Charleroi Belgium 4.450000 50.416698 210324 0 -Gent Belgium 3.700000 51.033298 234251 0 -La Louviere Belgium 4.200000 50.483299 250000 0 -Liege Belgium 5.583300 50.633301 201749 0 -Namur Belgium 4.866700 50.466702 102501 0 -Schaerbeek Belgium 4.366700 50.866699 106754 0 -Choumen Bulgaria 26.916700 43.283298 100116 0 -Plevene Bulgaria 24.666700 43.416698 129766 0 -Plovdiv Bulgaria 24.750000 42.133301 342131 0 -Rousse Bulgaria 25.983299 43.833302 183746 0 -Slivene Bulgaria 26.316700 42.666698 102423 0 -Sofia Bulgaria 23.299999 42.666698 1114759 1 -Stara Zagora Bulgaria 25.616699 42.416698 150803 0 -Tolboukhin Bulgaria 27.850000 43.566700 109066 0 -St. Helier Channel Islands -2.116700 49.200001 27012 1 -Bratislava Czechoslovakia 17.166700 48.166698 413002 0 -Brno Czechoslovakia 16.666700 49.216702 384554 0 -Kosice Czechoslovakia 21.250000 48.733299 220214 0 -Liberec Czechoslovakia 15.083300 50.799999 100694 0 -Olomouc Czechoslovakia 17.250000 49.633301 105906 0 -Ostrava Czechoslovakia 18.250000 49.833302 326810 0 -Plzen Czechoslovakia 13.416700 49.750000 175061 0 -Praha Czechoslovakia 14.433300 50.099998 1190576 1 -Alborg Denmark 9.933300 57.049999 250000 0 -Arhus Denmark 10.216700 56.166698 250000 0 -Kobenhavn Denmark 12.566700 55.716702 473000 1 -Odense Denmark 10.416700 55.400002 250000 0 -Espoo Finland 24.700001 60.166698 158592 0 -Tampere Finland 23.750000 61.533298 169510 0 -Turku Finland 22.250000 60.450001 161293 0 -Vantaa Finland 24.950001 60.299999 145134 0 -Aix-en-Provence France 5.450000 43.516701 119140 0 -Amiens France 2.300000 49.900002 130880 0 -Angouleme France 0.166700 45.666698 95000 0 -Annecy France 6.116700 45.900002 250000 0 -Avignon France 4.800000 43.933300 250000 0 -Besancon France 6.033300 47.233299 114040 0 -Bethune France 2.633300 50.533298 250000 0 -Bordeaux France -0.566700 44.833302 205960 0 -Boulogne-Billancourt France 1.600000 50.700001 101360 0 -Bruay-en-Artois France 2.550000 50.483299 250000 0 -Calais France 1.866700 50.950001 250000 0 -Cannes France 7.000000 43.549999 250000 0 -Clermont-Ferrand France 3.083300 45.783298 148040 0 -Dijon France 5.033300 47.333302 140900 0 -Douai France 3.083300 50.366699 250000 0 -Dunkerque France 2.383300 51.033298 250000 0 -Grenoble France 5.716700 45.183300 156440 0 -Hagondange-Briey France 6.183300 49.266701 250000 0 -La Rochelle France -1.166700 46.166698 250000 0 -Le Havre France 0.100000 49.500000 199120 0 -Le Mans France 0.200000 48.000000 147140 0 -Lens France 2.833300 50.433300 250000 0 -Lille France 3.083300 50.650002 164900 0 -Limoges France 1.250000 45.833302 139320 0 -Lyon France 4.833300 45.766701 408860 0 -Mantes-la-Jolie France 1.716700 48.983299 250000 0 -Marseille France 5.366700 43.299999 867260 0 -Metz France 6.183300 49.116699 250000 0 -Montbeliard France 6.800000 47.516701 250000 0 -Montpellier France 3.883300 43.599998 196860 0 -Mulhouse France 7.350000 47.750000 107480 0 -Nancy France 6.200000 48.700001 96000 0 -Nantes France -1.583300 47.233299 242340 0 -Nice France 7.266700 43.700001 335240 0 -Nimes France 4.350000 43.833302 126780 0 -Orleans France 1.900000 47.900002 103660 0 -Paris France 2.333300 48.866699 2188960 1 -Pau France -0.366700 43.299999 250000 0 -Perpigan France 2.900000 42.700001 110540 0 -Reims France 4.033300 49.250000 178380 0 -Rennes France -1.666700 48.099998 195260 0 -Roubaix France 3.166700 50.700001 100820 0 -Rouen France 1.083300 49.433300 101700 0 -Saint-Etienne France 4.383300 45.433300 204120 0 -Saint-Nazaire France -2.200000 47.283298 112000 0 -Strasbourg France 7.750000 48.583302 248040 0 -Thionville France 6.183300 49.366699 250000 0 -Toulon France 5.916700 43.116699 177920 0 -Toulouse France 1.450000 43.616699 345780 0 -Tours France 0.700000 47.383301 133580 0 -Trappes France 2.000000 48.783298 250000 0 -Trayes France 4.083300 48.299999 250000 0 -Valence France 4.900000 44.950001 250000 0 -Valenciennes France 3.533300 50.366699 250000 0 -Villeurbanne France 4.900000 45.766701 116660 0 -Cottbus German Democratic Republic 14.350000 51.716702 125784 0 -Dessau German Democratic Republic 12.250000 51.849998 103508 0 -Dresden German Democratic Republic 13.750000 51.049999 519737 0 -Halle German Democratic Republic 11.966700 51.466702 234768 0 -Jena German Democratic Republic 11.583300 50.933300 107369 0 -Karl-Marx-Stadt German Democratic Republic 12.916700 50.833302 314437 0 -Leipzig German Democratic Republic 12.416700 51.333302 552133 0 -Magdeburg German Democratic Republic 11.616700 52.133301 288798 0 -Potsdam German Democratic Republic 13.066700 52.400002 140198 0 -Rotstock German Democratic Republic 12.150000 54.066700 245606 0 -Schwerin German Democratic Republic 11.416700 53.633301 127823 0 -Zwickau German Democratic Republic 12.050000 50.716702 120573 0 -Aachen Germany 6.100000 50.766602 239170 0 -Augsburg Germany 10.900000 48.349998 245962 0 -Bergisch Gladbach Germany 7.166600 50.983299 101776 0 -Bielefeld Germany 8.533300 52.033298 299360 0 -Bochum Germany 7.183300 51.466702 381216 0 -Bonn Germany 7.100000 50.733299 291439 1 -Bottrap Germany 6.916700 51.516701 112256 0 -Braunschweig Germany 10.500000 52.250000 521976 0 -Bremen Germany 8.800000 53.083328 521976 0 -Bremerhaven Germany 8.583300 53.549999 132194 0 -Dortmund Germany 7.450000 51.533298 568164 0 -Duisburg Germany 6.750000 51.433300 514628 0 -Dusseldorf Germany 6.783300 51.216702 560572 0 -Erlangen Germany 11.033300 49.599998 100200 0 -Essen Germany 6.983300 51.466702 615412 0 -Frankfurt am Main Germany 8.683300 50.099998 592411 0 -Gelsenkirchen Germany 7.083300 51.500000 283560 0 -Gottingen Germany 9.916700 51.516701 133796 0 -Hagen Germany 7.483300 51.349998 206070 0 -Hamburg Germany 10.000000 53.549999 1571267 0 -Hamm Germany 7.816700 51.666698 165957 0 -Hannover Germany 9.733300 52.230000 505718 0 -Heidelberg Germany 8.700000 49.416698 136227 0 -Heibronn Germany 9.233300 49.133301 111713 0 -Herne Germany 7.200000 51.533298 171274 0 -Hildesheim Germany 9.966700 52.150002 100558 0 -Karlsruhe Germany 8.400000 49.000000 268309 0 -Kassel Germany 9.500000 51.299999 185370 0 -Kiel Germany 10.133300 54.333302 243626 0 -Koblenz Germany 7.600000 50.349998 110277 0 -Koln Germany 6.950000 50.933300 914336 0 -Krefeld Germany 6.533300 51.333302 216598 0 -Leverkusen Germany 6.983300 51.033298 154703 0 -Lubeck Germany 10.666700 53.866699 209159 0 -Ludwigshafen am Rhein Germany 8.450000 49.483299 152162 0 -Mainz Germany 8.266700 50.000000 189005 0 -Mannheim Germany 8.466700 49.500000 294648 0 -Monchengladbach Germany 6.416700 51.200001 255087 0 -Mulheim a.d. Ruhr Germany 6.833300 51.416698 170392 0 -Munchen Germany 11.583300 48.133301 1274716 0 -Munster (West f.) Germany 7.616700 51.966702 267628 0 -Neuss Germany 6.700000 51.200001 143832 0 -Nurnberg Germany 11.083300 49.450001 467392 0 -Oberhausen Germany 6.833300 51.466702 221542 0 -Offenbach am Main Germany 8.766700 50.099998 107078 0 -Oldenburg Germany 8.216700 53.133301 139256 0 -Osnabruck Germany 8.050000 52.283298 153776 0 -Paderborn Germany 8.733300 51.716702 110296 0 -Pforzheim Germany 8.683300 48.883301 104452 0 -Recklinghausen Germany 7.183300 51.616699 117585 0 -Regensburg Germany 12.116700 49.016701 123821 0 -Remscheid Germany 7.183300 51.166698 121005 0 -Saarbrucken Germany 6.966700 49.250000 184353 0 -Siegen Germany 8.033300 50.866699 107319 0 -Solingen Germany 7.083300 51.166698 158401 0 -Stuttgart Germany 9.200000 48.783298 565486 0 -Ulm Germany 10.000000 48.400002 100745 0 -Wiesbaden Germany 8.250000 50.083302 266542 0 -Witten Germany 7.316700 51.416698 102232 0 -Wolfsburg Germany 10.816700 52.450001 121951 0 -Wuppertal Germany 7.166700 51.250000 374217 0 -Wurzburg Germany 9.950000 49.799999 127050 0 -Berlin Germany 13.416700 52.533298 1879225 1 -Gibraltar Gibraltar -5.350000 36.150002 29692 1 -Athens Greece 23.733299 38.000000 885737 1 -Larissa Greece 22.416700 39.633301 102048 0 -Patrai Greece 21.733299 38.233299 141529 0 -Peristeri Greece 21.133301 39.666698 140858 0 -Piraievs Greece 23.700001 37.950001 196389 0 -Thessaloniki Greece 22.966700 40.633301 406413 0 -Holy See Holy See 12.450000 41.900002 752 1 -Budapest Hungary 19.049999 47.500000 2084739 0 -Debrecen Hungary 21.616699 47.500000 213330 0 -Gyor Hungary 17.666700 47.683300 129655 0 -Kecskemet Hungary 19.716700 46.933300 103417 0 -Miskolc Hungary 20.783300 48.116699 211408 0 -Nyieregyhaza Hungary 21.716700 47.950001 117481 0 -Pecs Hungary 18.250000 46.066700 178078 0 -Szeged Hungary 20.150000 46.250000 183848 0 -Szekesfehervar Hungary 18.366699 47.183300 112091 0 -Cork Ireland -8.466700 51.900002 136269 0 -Allessandria Italy 8.616700 44.916698 100523 0 -Bari Italy 16.866699 41.116699 368896 0 -Bergamo Italy 9.666700 45.700001 120512 0 -Bologna Italy 11.333300 44.500000 445139 0 -Bolzano Italy 11.366700 46.500000 102826 0 -Brescia Italy 10.216700 45.549999 203187 0 -Cagliari Italy 9.133300 39.216702 224508 0 -Catanzaro Italy 16.600000 38.900002 101964 0 -Cosenza Italy 16.266701 39.283298 106353 0 -Ferrara Italy 11.633300 44.833302 146735 0 -Firenze Italy 11.250000 43.783298 438304 0 -Foggia Italy 15.550000 41.466702 157595 0 -Forli Italy 12.033300 44.216702 110884 0 -Genova Italy 8.933300 44.400002 742442 0 -La Spezia Italy 9.833300 44.133301 111980 0 -Livorno Italy 10.300000 43.549999 176051 0 -Messina Italy 15.550000 38.216702 264848 0 -Milano Italy 9.200000 45.466702 1548580 0 -Modena Italy 10.916700 44.650002 1785657 0 -Monza Italy 9.266700 45.583302 122449 0 -Napoli Italy 14.250000 40.833302 1207750 0 -Novara Italy 8.616700 45.450001 102430 0 -Padova Italy 11.883300 45.400002 229950 0 -Parma Italy 10.316700 44.799999 177099 0 -Perugia Italy 12.383300 43.116699 144505 0 -Pescara Italy 14.216700 42.450001 131948 0 -Piacenza Italy 9.683300 45.049999 107312 0 -Pisa Italy 10.400000 43.716702 104054 0 -Prato Italy 11.100000 43.883301 162144 0 -Reggio di Calabria Italy 15.650000 38.099998 176442 0 -Reggio nell'Emilia Italy 10.616700 44.700001 130747 0 -Rimini Italy 12.566700 44.049999 129858 0 -Rome Italy 12.500000 41.883301 2828692 1 -Salerno Italy 14.766700 40.666698 156606 0 -Sassari Italy 8.566700 40.716702 119835 0 -Siracusa Italy 15.300000 37.066700 118966 0 -Taranto Italy 17.250000 40.466702 243777 0 -Terni Italy 12.650000 42.566700 111105 0 -Torino Italy 7.666700 45.066700 1059505 0 -Trieste Italy 13.783300 45.650002 244980 0 -Udine Italy 13.233300 46.066700 101068 0 -Verona Italy 11.000000 45.433300 261271 0 -Vicenza Italy 11.533300 45.549999 112246 0 -Vaduz Liechtenstein 9.533300 47.133301 4904 1 -Luxembourg-Ville Luxembourg 6.133300 49.616699 76130 1 -Amsterdam Netherlands 4.900000 52.349998 680921 1 -Apeldoorn Netherlands 5.950000 52.216702 145734 0 -Arnhem Netherlands 5.883300 52.000000 127819 0 -Breda Netherlands 4.766700 51.583302 119300 0 -Dordrecht Netherlands 4.666700 51.799999 106977 0 -Eindhoven Netherlands 5.500000 51.433300 190900 0 -Groningen Netherlands 6.583300 53.216702 168012 0 -Haarlem Netherlands 4.633300 52.383301 149437 0 -Leiden Netherlands 4.500000 52.166698 106035 0 -Maastricht Netherlands 5.700000 50.849998 114925 0 -Nijmegen Netherlands 5.866700 51.833302 146910 0 -Rotterdam Netherlands 4.483300 51.916698 572007 0 -'S Gravenhage Netherlands 4.266700 52.083302 444544 0 -Tilburg Netherlands 5.083300 51.566700 153664 0 -Utrecht Netherlands 5.116700 52.099998 229629 0 -Zaanstad Netherlands 4.816700 52.450001 128318 0 -Bergen Norway 5.333300 60.383301 209351 0 -Oslo Norway 10.750000 59.933300 451951 1 -Sor-Trondelg Norway 11.000000 63.000000 134920 0 -Bialystok Poland 23.166700 53.150002 253198 0 -Bielsko-Biala Poland 19.000000 49.833302 176392 0 -Bydgoszcz Poland 18.000000 53.266701 368152 0 -Bytom Poland 18.850000 50.349998 238985 0 -Chorzow Poland 18.933300 50.316700 141358 0 -Czestochowa Poland 19.116699 50.816700 249858 0 -Dabrowa Gormicza Poland 23.333300 53.666698 138524 0 -Elblag Poland 19.416700 54.166698 118897 0 -Gdansk Poland 18.683300 54.366699 468350 0 -Gdynia Poland 18.500000 54.516701 247491 0 -Gliwice Poland 18.666700 50.333302 210399 0 -Gorzow Wielkopolski Poland 15.200000 52.700001 116505 0 -Jastrzebie Poland 18.583300 49.950001 101056 0 -Kalisz Poland 15.916700 53.283298 104387 0 -Katowice Poland 18.983299 50.250000 365630 0 -Kielce Poland 20.650000 50.849998 204771 0 -Koszalin Poland 16.166700 54.166698 102307 0 -Krakow Poland 19.916700 50.049999 742428 0 -Lodz Poland 19.466700 51.816700 847338 0 -Lublin Poland 22.516701 51.299999 328042 0 -Olsztym Poland 20.483299 53.799999 151081 0 -Opale Poland 17.966700 50.700001 126731 0 -Plock Poland 19.666700 52.533298 115664 0 -Poznan Poland 16.883301 52.416698 576433 0 -Radom Poland 21.166700 51.433300 217752 0 -Ruda Slaska Poland 18.833300 50.266701 166901 0 -Rybnik Poland 18.500000 50.116699 138490 0 -Rzeszow Poland 22.000000 50.066700 143579 0 -Sosnowiec Poland 19.116699 50.266701 257519 0 -Szczecin Poland 14.533300 53.416698 393571 0 -Tarnow Poland 20.983299 50.016701 116816 0 -Torun Poland 18.583300 53.016701 193051 0 -Tychy Poland 18.933300 50.133301 184703 0 -Walbrzych Poland 16.316700 50.799999 138903 0 -Warszawa Poland 21.000000 52.250000 1661503 1 -Wloclawek Poland 23.516701 51.549999 117299 0 -Wodzislaw Slaski Poland 20.133301 50.516701 109662 0 -Wroclaw Poland 17.000000 51.083302 638346 0 -Zabrze Poland 18.783300 50.299999 198911 0 -Zielona Gora Poland 15.500000 51.950001 111609 0 -Lisboa Portugal -9.133300 38.733299 807167 1 -Porto Portugal -8.616700 41.150002 327368 0 -Arad Romania 21.316700 46.166698 185892 0 -Bacau Romania 26.966700 46.549999 175299 0 -Baia Mare Romania 23.600000 47.650002 135536 0 -Botosani Romania 26.683300 47.733299 104836 0 -Braila Romania 27.966700 45.283298 234600 0 -Brasov Romania 25.583300 45.650002 346640 0 -Bucaresti Romania 26.166700 44.450001 1975508 1 -Buzau Romania 26.816700 45.150002 132311 0 -Cluj-Napoca Romania 23.616699 46.783298 309843 0 -Craiova Romania 23.783300 44.299999 275098 0 -Galati Romania 28.033300 45.450001 292805 0 -Iasi Romania 27.633301 47.150002 314156 0 -Oradea Romania 21.916700 47.049999 208507 0 -Piatra Neamt Romania 26.383301 46.883301 107581 0 -Pitesti Romania 24.850000 44.849998 154112 0 -Ploiesti Romania 26.016701 44.950001 234021 0 -Satu-Mare Romania 22.866699 47.799999 128115 0 -Sibiu Romania 24.150000 45.766701 176928 0 -Timisoara Romania 21.250000 45.750000 318955 0 -Tirgus-Mures Romania 24.633301 46.516701 157411 0 -San Marino San Marino 12.416700 43.933300 2397 1 -Albacete Spain -1.866700 39.000000 126594 0 -Alcala de Henares Spain -3.366700 40.466702 144268 0 -Alcorcon Spain -3.833300 40.349998 137884 0 -Alicante Spain -0.483300 38.349998 258707 0 -Almeria Spain -2.433300 36.833302 154242 0 -Badajoz Spain -6.966700 38.883301 119220 0 -Badalona Spain 2.250000 41.450001 225016 0 -Baracaldo Spain -2.983300 43.283298 114094 0 -Barcelona Spain 2.166700 41.416698 1699231 0 -Bilbao Spain -2.933300 43.250000 379106 0 -Burgos Spain -3.683300 42.349998 158610 0 -Cartagena Spain -0.983300 37.599998 168596 0 -Castellon Spain -0.050000 39.966702 127578 0 -Cordoba Spain -4.766700 37.883301 296074 0 -Elche Spain -0.683300 38.266701 175649 0 -Fuenlabrada Spain -3.816700 40.266701 119848 0 -Getafe Spain -3.733300 40.299999 131840 0 -Gijon Spain -5.666700 43.533298 258291 0 -Granada Spain -3.583300 37.166698 256528 0 -Hospitalet Spain 2.100000 41.349998 279779 0 -Huelva Spain -6.933300 37.250000 135575 0 -Jaen Spain -3.800000 37.766701 103291 0 -Jerez de la Frontera Spain -6.133300 36.683300 179191 0 -La Coruna Spain -8.416700 43.333302 239504 0 -La Laguna Spain -16.316700 28.483299 107593 0 -Leganes Spain -3.766700 40.333302 167783 0 -Leon Spain -5.566700 42.583302 135013 0 -Lerida Spain 0.633300 41.616699 107787 0 -Logrono Spain -2.433300 42.466702 115922 0 -Malaga Spain -4.416700 36.716702 566482 0 -Mataro Spain 2.450000 41.533298 100021 0 -Mostoles Spain -3.883300 40.316700 175133 0 -Murcia Spain -1.133300 37.983299 304184 0 -Orense Spain -7.866700 42.333302 100430 0 -Oviedo Spain -5.833300 43.349998 185919 0 -Palma de Mallorca Spain 2.650000 39.583302 295351 0 -Pamplona Spain -1.650000 42.816700 178452 0 -Sabadell Spain 2.116700 41.549999 186115 0 -Salamanca Spain -5.666700 40.966702 152766 0 -San Sebastian Spain -1.983300 43.316700 175267 0 -Santa Coloma de Gramanet Spain 2.233300 41.466702 135258 0 -Sevilla Spain -5.983300 37.400002 651298 0 -Tarragona Spain 1.250000 41.116699 106360 0 -Tarrasa Spain 2.000000 41.566700 160105 0 -Valencia Spain -0.400000 39.483299 728621 0 -Valladolid Spain -4.750000 41.650002 327785 0 -Vitoria Spain -2.666700 42.849998 199936 0 -Zaragoza Spain -0.900000 41.650002 573710 0 -Boras Sweden 12.916700 57.733299 100251 0 -Goteborg Sweden 12.000000 57.750000 431362 0 -Helsingborg Sweden 12.750000 56.083302 106749 0 -Jonkoping Sweden 14.166700 57.750000 108585 0 -Linkoping Sweden 15.583300 58.416698 118156 0 -Malmo Sweden 13.000000 55.583302 230670 0 -NorrKoping Sweden 16.166700 58.583302 118920 0 -Orebro Sweden 15.083300 59.299999 118769 0 -Stockholm Sweden 18.083300 59.333302 665489 1 -Uppsala Sweden 17.700001 59.883301 158527 0 -Vasteras Sweden 16.583300 59.599998 117721 0 -Bale Switzerland 7.583300 47.583302 173884 0 -Berne Switzerland 7.433300 46.950001 137853 1 -Geneve Switzerland 6.150000 46.216702 160269 0 -Lausanne Switzerland 6.650000 46.533298 124604 0 -Zurich Switzerland 8.550000 47.383301 350546 0 -Beograd Yugoslavia 20.500000 44.833302 1087915 1 -Ljubiana Yugoslavia 14.500000 46.066700 224817 0 -Marebor Yugoslavia 15.633300 46.566700 106113 0 -Nis Yugoslavia 21.900000 43.333302 161376 0 -Novi Sad Yugoslavia 19.850000 45.250000 170020 0 -Osijek Yugoslavia 18.683300 45.549999 104775 0 -Pistina Yugoslavia 21.166700 42.650002 108083 0 -Rijeka Yugoslavia 14.450000 45.333302 159433 0 -Sarajevo Yugoslavia 18.433300 43.866699 319017 0 -Skoplje Yugoslavia 21.466700 42.000000 408143 0 -Split Yugoslavia 16.466700 43.516701 169322 0 -Subotica Yugoslavia 19.683300 46.066700 100516 0 -Zagreb Yugoslavia 15.966700 45.799999 649586 0 -Adelaide Australia 138.600006 -34.933300 987100 0 -Brisbane Australia 153.000000 -27.500000 1157200 0 -Canberra Australia 149.133301 -35.299999 273600 1 -Geelong Australia 144.433304 -38.166698 147100 0 -Gold Coast Australia 153.366699 -27.983299 208100 0 -Greater Wollongong Australia 150.866699 -34.416698 236800 0 -Hobart Australia 147.300003 -42.900002 178100 0 -Melbourne Australia 144.966705 -37.750000 2916600 0 -Newcastle Australia 151.766693 -32.916698 423300 0 -Perth Australia 115.816704 -31.966700 1001000 0 -Sydney Australia 151.166702 -33.916698 3391660 0 -Suva Fiji 178.416702 -18.133301 69665 1 -Agana Guam 144.750000 13.466700 896 1 -Tarawa Kiribati 173.000000 1.500000 250000 1 -Noumea New Caledonia 166.433304 -22.266701 60112 1 -Christchurch New Zealand 172.666702 -43.549999 167700 0 -Dunedin New Zealand 170.500000 -45.866699 250000 0 -Hamilton New Zealand 175.300003 -37.766701 250000 0 -Manukau New Zealand 174.883301 -36.983299 181000 0 -Wellington New Zealand 174.783295 -41.283298 136000 1 -Port Moresby Papua New Guinea 147.116699 -9.500000 141500 1 -Adamstown Pitcairn -130.083298 -25.066700 250000 1 -Honiara Solomon Islands 159.949997 -9.466700 14942 1 -Nuku'alofa Tonga -175.233307 -21.150000 250000 1 -Vila Vanuatu 168.300003 -17.750000 13067 1 -Abakan USSR 91.416702 53.716702 148000 0 -Achinsk USSR 90.550003 56.333302 120000 0 -Aktyubinsk USSR 57.216702 50.266701 239000 0 -Alma-Ata USSR 76.916702 43.316700 1088000 0 -Almalyk USSR 69.666702 40.833302 117000 0 -Almetevsk USSR 52.366699 54.833302 125000 0 -Andizhan USSR 72.000000 41.166698 281000 0 -Andropov USSR 38.833302 58.049999 252000 0 -Angarsk USSR 103.916702 52.516701 259000 0 -Angren USSR 70.166702 41.166698 126000 0 -Anzhero-Sudzhensk USSR 86.016701 56.166698 111000 0 -Arkhanglsk USSR 41.000000 64.666702 412000 0 -Arzamas USSR 43.799999 55.400002 170000 0 -Ashkhabad USSR 58.400002 37.966702 366000 0 -Astrakhan USSR 48.066700 46.366699 503000 0 -Baku USSR 49.883301 40.366699 1722000 0 -Balakovo USSR 47.766701 52.066700 184000 0 -Balashikha USSR 37.983299 55.783298 130000 0 -Baranovichi USSR 26.000000 53.150002 152000 0 -Barnaul USSR 83.750000 53.349998 586000 0 -Belaya Tserkov USSR 30.166700 49.816700 194000 0 -Belgorod USSR 36.599998 50.633301 286000 0 -Beltsy USSR 27.683300 47.733299 151000 0 -Bendery USSR 29.483299 46.833302 126000 0 -Berdyansk USSR 36.783298 46.750000 133000 0 -Berezniki USSR 56.816700 59.433300 198000 0 -Biisk USSR 85.266701 52.583302 228000 0 -Blagovershchensk USSR 127.500000 50.316700 199000 0 -Bobruisk USSR 29.166700 53.133301 227000 0 -Borisov USSR 28.500000 54.150002 136000 0 -Bratsk USSR 101.833298 56.333302 245000 0 -Brest USSR 23.666700 52.133301 230000 0 -Breznev USSR 52.316700 55.700001 459000 0 -Bryansk USSR 34.150002 53.250000 437000 0 -Bukhara USSR 64.433296 39.783298 214000 0 -Chardzhou USSR 63.566700 39.150002 162000 0 -Cheboksary USSR 47.200001 56.133301 402000 0 -Chelyabinsk USSR 61.416698 55.200001 1107000 0 -Cherepovets USSR 37.833302 59.150002 309000 0 -Cherkassy USSR 32.066700 49.450001 287000 0 -Cherkessk USSR 42.083302 44.233299 105000 0 -Chernigov USSR 31.299999 51.500000 291000 0 -Chernovtsy USSR 25.866699 48.316700 254000 0 -Chimkent USSR 69.083298 42.266701 379000 0 -Chirchik USSR 69.516701 41.466702 156000 0 -Chita USSR 113.583298 52.049999 342000 0 -Daugavpils USSR 26.516701 55.866699 126000 0 -Dneprodzerzhinsk USSR 34.616699 48.500000 279000 0 -Dnepropetrovsk USSR 35.000000 48.483299 1182000 0 -Donetsk USSR 37.833302 48.000000 1090000 0 -Dushanbe USSR 68.849998 38.633301 567000 0 -Dzhambul USSR 71.000000 43.166698 308000 0 -Dzhezkazgan USSR 67.400002 47.799999 103000 0 -Elektrostal USSR 38.500000 55.766701 149000 0 -Elets USSR 38.500000 52.583302 117000 0 -Enakievo USSR 38.250000 48.233299 117000 0 -Engels USSR 46.116699 51.500000 180000 0 -Erevan USSR 44.516701 40.166698 1148000 0 -Evpatoriya USSR 33.333302 45.200001 106000 0 -Fergana USSR 71.316704 40.383301 199000 0 -Frunze USSR 74.833298 42.666698 617000 0 -Gomel USSR 31.000000 52.416698 478000 0 -Gorky USSR 45.066700 57.599998 1409000 0 -Gorlovka USSR 38.083302 48.283298 345000 0 -Grodno USSR 23.833300 53.666698 255000 0 -Grozny USSR 45.700001 43.349998 399000 0 -Guryev USSR 51.983299 47.133301 147000 0 -Irkutsk USSR 104.250000 52.299999 601000 0 -Ivano-Frankovsk USSR 24.666700 48.666698 225000 0 -Kalinin USSR 35.950001 56.816700 442000 0 -Kaluga USSR 36.266701 54.516701 302000 0 -Kamensk-Uralsky USSR 61.816700 56.483299 202000 0 -Kamyshin USSR 45.400002 50.083302 118000 0 -Kansk USSR 95.800003 56.183300 106000 0 -Karaganda USSR 73.116699 49.883301 624000 0 -Karshi USSR 65.750000 38.883301 137000 0 -Kaunas USSR 23.916700 54.866699 410000 0 -Kazan USSR 49.166698 55.750000 1057000 0 -Kemerovo USSR 86.083298 55.416698 514000 0 -Kerch USSR 36.450001 45.366699 173000 0 -Khabarovsk USSR 135.133301 48.533298 584000 0 -Kharkov USSR 36.250000 50.000000 1587000 0 -Kherson USSR 32.633301 46.650002 358000 0 -Khimki USSR 37.433300 55.883301 127000 0 -Khmelnitsky USSR 26.983299 49.416698 230000 0 -Kiev USSR 30.500000 50.416698 2544000 0 -Kineshma USSR 42.133301 57.466702 105000 0 -Kirov USSR 49.666698 58.583302 415000 0 -Kirovabad USSR 46.166698 40.750000 265000 0 -Kirovakan USSR 44.500000 40.816700 167000 0 -Kirovograd USSR 32.250000 48.516701 269000 0 -Kiselevsk USSR 86.683296 54.016701 127000 0 -Kishinev USSR 28.833300 47.000000 643000 0 -Kislovodsk USSR 42.733299 43.933300 108000 0 -Klaipeda USSR 21.116699 55.716702 197000 0 -Kokand USSR 70.916702 40.549999 169000 0 -Kokchetav USSR 69.416702 53.299999 123000 0 -Kolomna USSR 38.750000 55.083302 158000 0 -Kolpino USSR 30.650000 59.733299 131000 0 -Kommunarsk USSR 38.783298 48.500000 126000 0 -Komsomolsk-na-Amure USSR 136.983307 50.533298 309000 0 -Konstantinovka USSR 37.750000 48.549999 115000 0 -Kostroma USSR 40.983299 57.766701 273000 0 -Kovrov USSR 41.349998 56.383301 155000 0 -Kramatorsk USSR 37.549999 48.716702 198000 0 -Krasni Luch USSR 39.000000 48.166698 112000 0 -Krasnodar USSR 39.000000 45.033298 615000 0 -Krasnoyarsk USSR 92.766701 56.083302 885000 0 -Kremenchug USSR 33.416698 49.049999 230000 0 -Krivoi Rog USSR 33.400002 47.916698 698000 0 -Kuibyshev USSR 50.166698 53.166698 1267000 0 -Kurgan USSR 65.333298 55.500000 348000 0 -Kursk USSR 36.233299 51.750000 426000 0 -Kustanai USSR 63.666698 53.250000 207000 0 -Kutaisi USSR 42.733299 42.250000 217000 0 -Kzyl-Orda USSR 65.466698 44.866699 185000 0 -Leninabad USSR 69.666702 40.233299 153000 0 -Leninakan USSR 43.816700 40.783298 226000 0 -Leningrad USSR 30.416700 59.916698 4904000 0 -Leninsk-Kuznetsky USSR 86.216698 54.733299 167000 0 -Lipetsk USSR 39.599998 52.616699 456000 0 -Lisichansk USSR 38.416698 48.883301 124000 0 -Lutsk USSR 25.250000 50.700001 185000 0 -Lyubertsy USSR 37.966702 55.633301 162000 0 -Magadan USSR 150.833298 59.633301 145000 0 -Magnitogorsk USSR 59.099998 53.466702 425000 0 -Maikop USSR 40.799999 44.616699 142000 0 -Makeyevka USSR 38.000000 48.016701 455000 0 -Makhachkala USSR 47.500000 42.983299 311000 0 -Melitopol USSR 35.366699 46.849998 174000 0 -Miass USSR 60.133301 55.000000 162000 0 -Michurinsk USSR 40.500000 52.900002 103000 0 -Minsk USSR 27.500000 53.849998 1510000 0 -Mogilev USSR 30.333300 53.900002 351000 0 -Moscow USSR 37.700001 55.750000 8714000 1 -Murmansk USSR 33.133301 68.983299 426000 0 -Murom USSR 42.066700 55.566700 122000 0 -Mytishchi USSR 37.783298 55.900002 151000 0 -Nalchik USSR 43.633301 43.516701 231000 0 -Navoi USSR 65.333298 40.066700 103000 0 -Nevinnomyssk USSR 41.983299 44.633301 115000 0 -Nikolaev USSR 23.983299 49.533298 501000 0 -Nikopol USSR 34.416698 47.566700 157000 0 -Nizhnekamsk USSR 51.783298 55.599998 177000 0 -Nizenvartovsk USSR 76.666702 60.950001 200000 0 -Nizhny Tagil USSR 59.966702 58.000000 423000 0 -Noginsk USSR 38.483299 55.866699 121000 0 -Norilsk USSR 88.033302 69.349998 181000 0 -Novgorod USSR 31.333300 58.500000 224000 0 -Novocheboksarsk USSR 47.450001 56.083302 106000 0 -Novocherkassk USSR 40.083302 47.416698 187000 0 -Novokuibyshevsk USSR 49.983299 53.083302 111000 0 -Novokuznetsk USSR 87.199997 53.750000 583000 0 -Novomoskovsk USSR 35.283298 48.549999 147000 0 -Novorossiisk USSR 37.766701 44.733299 177000 0 -Novoshakhinsk USSR 39.916698 47.766701 1405000 0 -Novosibirsk USSR 83.083298 55.066700 104000 0 -Nukus USSR 59.116699 42.466702 146000 0 -Odintsovo USSR 37.250000 55.650002 118000 0 -Oktyabrskii USSR 53.500000 54.500000 104000 0 -Omsk USSR 73.366699 55.000000 1122000 0 -Orekhovo-Zuevo USSR 39.000000 55.783298 138000 0 -Orel USSR 36.066700 52.966702 331000 0 -Orenburg USSR 55.000000 51.833302 527000 0 -Orsk USSR 58.583302 51.216702 270000 0 -Orsha USSR 30.383301 54.500000 120000 0 -Osh USSR 72.816704 40.616699 204000 0 -Panevezhis USSR 24.400000 55.733299 119000 0 -Pavlodar USSR 76.983299 52.349998 322000 0 -Pavlograd USSR 35.833302 48.566700 126000 0 -Penza USSR 45.000000 53.183300 532000 0 -Perm USSR 56.166698 58.016701 1065000 0 -Pervouralsk USSR 59.966702 56.983299 138000 0 -Petropavlovsk Kamchatsky USSR 158.716705 53.049999 248000 0 -Petropavlovsk USSR 69.216698 54.883301 229000 0 -Petrozavodsk USSR 34.316700 61.766701 259000 0 -Pinsk USSR 26.016701 52.133301 113000 0 -Podolsk USSR 37.533298 55.383301 208000 0 -Poltava USSR 34.583302 49.583302 309000 0 -Prokopyevsk USSR 86.750000 53.916698 276000 0 -Pskov USSR 28.433300 57.799999 197000 0 -Pyatigorsk USSR 43.099998 44.066700 120000 0 -Riga USSR 24.133301 56.883301 890000 0 -Rostov-na-Dona USSR 39.750000 47.250000 992000 0 -Rovno USSR 26.166700 50.650002 233000 0 -Rubtsovsk USSR 81.183296 51.566700 167000 0 -Rudniy USSR 44.583302 50.816700 116000 0 -Rustavi USSR 45.049999 41.566700 145000 0 -Ryazan USSR 39.716702 54.616699 500000 0 -Salavat USSR 55.833302 53.366699 157000 0 -Samarkand USSR 66.949997 39.666698 380000 0 -Saransk USSR 45.166698 54.200001 315000 0 -Sarapul USSR 60.966702 64.250000 110000 0 -Saratov USSR 45.916698 51.500000 907000 0 -Semipalatinsk USSR 80.266701 50.433300 324000 0 -Serov USSR 60.533298 59.700001 103000 0 -Serpukhov USSR 37.416698 54.883301 142000 0 -Sevastopol USSR 33.516701 44.599998 350000 0 -Severodonetsk USSR 38.483299 48.966702 127000 0 -Shakhy USSR 58.500000 48.450001 223000 0 -Shchelkovo USSR 38.083302 55.933300 137000 0 -Shevchenko USSR 37.183300 48.233299 106000 0 -Simferopol USSR 34.083302 44.950001 338000 0 -Slavyansk USSR 37.599998 48.849998 144000 0 -Smolensk USSR 32.066700 54.816700 334000 0 -Sochi USSR 39.766701 43.583302 313000 0 -Solikamsk USSR 56.750000 59.666698 107000 0 -Stakhanov USSR 101.666702 71.766701 112000 0 -Stary Oskol USSR 37.833302 51.333302 161000 0 -Stavropol USSR 41.983299 45.049999 299000 0 -Sterlitamak USSR 55.983299 53.666698 245000 0 -Sukhumi USSR 41.016701 43.016701 128000 0 -Sumgait USSR 49.633301 40.583302 228000 0 -Sumy USSR 34.816700 50.916698 268000 0 -Surgut USSR 73.333298 61.216702 215000 0 -Sverdlovsk USSR 60.583302 56.866699 1315000 0 -Syktykar USSR 50.750000 61.700001 218000 0 -Syzran USSR 48.483299 53.166698 173000 0 -Taganrog USSR 38.916698 47.233299 291000 0 -Taldi-Kurgan USSR 78.383301 45.033298 109000 0 -Tallin USSR 24.799999 59.366699 472000 0 -Tambov USSR 41.466702 52.733299 300000 0 -Tartu USSR 26.733299 58.333302 111000 0 -Tashauz USSR 59.966702 41.816700 107000 0 -Tashkent USSR 69.216698 41.266701 2077000 0 -Tbilisi USSR 44.799999 41.716702 1174000 0 -Temirtau USSR 72.916702 50.083302 226000 0 -Ternopol USSR 25.650000 49.583302 197000 0 -Tiraspol USSR 29.633301 46.833302 166000 0 -Tolyatti USSR 49.400002 53.533298 610000 0 -Tomsk USSR 85.083298 56.500000 483000 0 -Tselinograd USSR 71.466698 51.166698 269000 0 -Tula USSR 37.633301 54.183300 534000 0 -Tyumen USSR 65.483299 57.183300 440000 0 -Ufa USSR 55.966702 54.750000 1077000 0 -Uhta USSR 53.733299 63.549999 102000 0 -Ulan-Ude USSR 107.666702 51.916698 342000 0 -Ulyanovsk USSR 48.366699 54.316700 566000 0 -Uralsk USSR 51.333302 51.316700 197000 0 -Urgench USSR 60.683300 41.583302 120000 0 -Usolye Sibirskoye USSR 103.666702 52.799999 109000 0 -Ustinov USSR 60.000000 54.816700 620000 0 -Ust-Ilimsk USSR 102.650002 58.049999 101000 0 -Ust-Kamenogorsk USSR 82.599998 49.966702 313000 0 -Uzgorod USSR 22.250000 48.633301 111000 0 -Velikie Luky USSR 30.516701 56.316700 111000 0 -Vilniius USSR 25.316700 54.666698 555000 0 -Vinnitsa USSR 28.500000 49.183300 383000 0 -Vitebsk USSR 30.233299 55.166698 340000 0 -Valdimir USSR 40.416698 56.133301 336000 0 -Vladivosok USSR 131.883301 43.150002 608000 0 -Volgodonsk USSR 42.133301 47.583302 172000 0 -Volgograd USSR 44.500000 48.750000 981000 0 -Vologda USSR 39.916698 59.166698 273000 0 -Volzhsky USSR 47.849998 46.650002 250000 0 -Vorkuta USSR 64.000000 67.449997 110000 0 -Voroshlovgrad USSR 39.333302 48.583302 509000 0 -Votkinsk USSR 54.000000 57.000000 100000 0 -Yakutsk USSR 129.833298 62.166698 184000 0 -Yaroslavi USSR 39.866699 57.566700 630000 0 -Yoshkar-Ola USSR 47.866699 56.633301 236000 0 -Yuzhno-Sakhalinsk USSR 142.750000 46.966702 163000 0 -Zagossk USSR 38.166698 56.333302 112000 0 -Zaporozhye USSR 35.166698 47.833302 875000 0 -Zelenograd USSR 20.466700 54.950001 144000 0 -Zhdanov USSR 37.566700 47.083302 529000 0 -Zhitomir USSR 28.666700 50.299999 287000 0 -Zlatoust USSR 59.633301 55.166698 205000 0 -Stanley Falkland Islands -57.930000 -51.750000 1079 1 -Madrid Spain -3.710000 40.410000 250000 1 -Rarotonga Cook Islands -159.750000 -21.250000 9530 1 -Dili E. Timor 125.580002 -8.580000 52158 1 -Gaberone Botswana 25.916000 -24.750000 107677 1 -Kenitra Morocco -6.566000 34.333000 250000 0 -Bukavu Zaire 28.833300 -2.500000 171064 0 -Kitwe Zambia 28.183300 -12.833300 320320 0 -Brampton Canada -79.766602 43.700001 149030 0 -St. John's Canada -66.033302 45.250000 250000 0 -Cienfuegos Cuba -80.449997 22.166599 112225 0 -Pachuca Mexico -98.733299 20.166599 110351 0 -Resende Brazil -44.450001 -22.466000 102865 0 -Rio Branco Brazil -67.816597 -9.983300 145948 0 -Sao Caetano do Sul Brazil -46.566601 -23.616600 171187 0 -Teofilo Otoni Brazil -41.516602 -17.866600 126207 0 -Sincelejo Colombia -75.383301 9.283300 250000 0 -Tulua Colombia -76.199997 4.083300 250000 0 -Ambato Ecuador -78.650002 -1.300000 106969 0 -Cuenca Ecuador -79.000000 -2.900000 161516 0 -Esmeraldas Ecuador -79.666603 0.933300 105153 0 -Machala Ecuador -79.949997 -3.333300 111450 0 -Manta Ecuador -80.733299 -0.983300 106087 0 -Portoviejo Ecuador -80.466599 -1.116600 108325 0 -Holon Israel 34.766602 32.016602 139800 0 -Angers France -0.533000 47.483299 137760 0 -Bayonne France -1.466000 43.500000 250000 0 -Brest France -4.500000 48.383301 154020 0 -Erfurt German Democratic Republic 11.033300 50.966599 216646 0 -Gera German Democratic Republic 12.183300 50.849998 132303 0 -Darmstadt Germany 8.650000 49.866600 133572 0 -Salzgitter Germany 10.333000 52.216599 105392 0 -Dublin Ireland -6.250000 53.333000 525360 1 -Ravenna Italy 12.020000 44.416599 137011 0 -Enschede Netherlands 6.916600 52.216599 144137 0 -Trondheim Norway 10.383300 63.599998 134019 0 -Palma de Gran Canaria Spain -15.450000 28.133301 356730 0 -Santa Cruz de Tenerife Spain -16.250000 28.466600 212524 0 -Belovo USSR 86.316597 54.450001 117000 0 -Ivanovo USSR 41.990002 57.000000 476000 0 -Lvov USSR 24.000000 49.833302 767000 0 -Margelan USSR 71.750000 40.500000 124000 0 -Mezhdurechensk USSR 88.183296 54.716599 103000 0 -Nakhodka USSR -179.000793 71.166603 152000 0 -Manila Philippines 120.966003 14.616600 1789860 0 -Elizabeth USA -74.250000 40.666000 106540 0 -Toledo USA -83.583298 41.666000 340680 0 -S. Bend USA -86.250000 41.666000 107190 0 -Elkhart USA -85.932999 41.700001 44180 0 -Savannah USA -81.001099 32.000599 146800 0 -Athens USA -83.400002 33.950001 43100 0 -Melbourne USA -80.633301 28.000601 56740 0 -Tampa USA -82.633301 27.966600 277580 0 -Duluth USA -92.166000 46.750000 82380 0 -Richland USA -119.282997 46.283298 32580 0 -Fayetteville (Ark.) USA -94.166000 36.000500 40110 0 -CorpusChristi USA -97.900002 28.000830 263900 0 -Brownsville USA -97.500000 25.900000 102110 0 -Misato Japan 127.783302 26.316601 109517 0 -Odawara Japan 139.133301 35.250000 185909 0 -Onomichi Japan 133.183304 34.416599 102210 0 -Sakai Japan 135.466599 34.583302 811824 0 -Takatsuki Japan 139.250000 36.000000 350043 0 -Tokorozawa Japan 139.466599 35.799999 280728 0 -Urawa Japan 139.666595 35.866600 381019 0 -Amman Jordan 35.625000 31.950001 812500 1 -Irbid Jordan 35.849998 32.549999 141400 0 -Zarqu Jordan 36.099998 32.066601 276850 0 -Kangnung Korea 127.433296 37.799999 132995 0 -Taejon Korea 127.433296 36.333302 866695 0 -Chiniot Pakistan 73.000000 31.666599 250000 0 -Islamabad Pakistan 73.133301 33.666599 250000 1 -Jhang Pakistan 72.000000 31.000000 250000 0 -Sargodha Pakistan 72.666603 32.016602 250000 0 -Mandaluyong Philippines 121.033302 14.600000 226670 0 -Pasig Philippines 121.066597 14.566600 318853 0 -Makkah Saudi Arabia 39.816601 21.433300 366801 0 -Nguyen Viet Nam 105.916603 22.683300 138023 0 -Ussuriisk USSR 131.983307 43.799999 157000 0 -Kumagaya Japan 139.366592 36.150002 143732 0 -Kochi Japan 133.533295 33.549999 310519 0 -Kobe Japan 135.199997 34.666599 1422922 0 -Hiratsuka Japan 139.316605 35.333302 230863 0 -Fujisawa Japan 139.483307 35.366600 332218 0 -Chigasaki Japan 139.399994 35.333302 188643 0 -Lingmen China 121.383301 28.333000 110900 0 -Kashi China 76.000328 39.483299 256890 0 -Kunming China 102.683296 25.000601 1418640 0 -Langfang China 116.666603 37.983299 172440 0 -Shuangyashan China 131.332993 46.700001 400050 0 -Tainan China 117.166603 36.250000 474835 0 -Long Beach USA -118.250000 33.783298 396280 0 -Fremont USA -96.500000 41.500000 153580 0 -Orange USA -93.716599 30.000830 100740 0 -Lakewood USA -81.833000 41.483002 122140 0 -Pittsburgh USA -80.000000 40.433300 387490 0 -Steubenville USA -80.650002 40.366600 23580 0 -Charlotte Amalie USAVirgin Islands -64.933296 18.366600 11842 1 -Mandalay Burma 96.000603 21.950001 532895 0 -Monywa Burma 93.199997 22.000799 106873 0 -Taunggyi Burma 96.883301 20.916599 107907 0 -Changsha China 113.000000 28.166599 1066030 0 -Chaoyang China 116.550003 23.283300 206700 0 -Fushun China 121.233299 37.516602 1184940 0 -Hailar China 119.683296 49.250000 157490 0 -Harbin China 126.666000 45.833302 2519120 0 -Hengshui China 115.733299 37.733299 101260 0 -Ulanhot China 122.000000 46.000332 174050 0 -Urumqi China 87.083000 43.000000 960240 0 -Yumen China 97.716599 39.900002 195290 0 -Bilaspur India 82.250000 22.033300 147218 0 -Dhulia India 74.833000 20.966600 210759 0 -Ganganagar India 73.933296 29.933300 123692 0 -Katihar India 87.599998 25.566601 122005 0 -Mathura India 77.800003 27.500000 147493 0 -Nanded India 77.333000 19.166599 191269 0 -Palghat India 76.699997 10.766600 111245 0 -Patan India 72.233299 23.900000 250000 0 -Patna India 85.300003 25.583300 776371 0 -Pollachi India 77.000000 10.583300 250000 0 -Rajahmundry India 81.866600 17.000160 203358 0 -Rajapalayam India 77.583298 9.416600 101640 0 -Raniganj India 87.250000 23.666000 48702 0 -Rewa India 81.416656 24.549999 100641 0 -Saharanpur India 77.550003 29.966600 295355 0 -Sambalpur India 83.966599 21.466600 110282 0 -Sangli India 74.550003 16.916599 152389 0 -Sitapur India 80.750000 27.633301 101210 0 -Saint-Denis Reunion 55.450001 -20.922510 109068 1 -Antananarivo Madagascar 49.805401 -16.433300 347466 1 -Port-Louis Mauritius 57.527901 -20.166700 137017 1 -Kinshasa Zaire 15.300000 -4.355813 2653558 1 -Sfax Tunisia 10.549270 34.583302 231911 0 -Mogadishu Somalia 45.322090 2.061206 230000 1 -Freetown Sierra Leone -13.283300 8.472094 469776 1 -Oujda Morocco -1.833714 34.683300 250000 0 -Nouakchott Mauritania -17.044609 20.900000 250000 1 -Tripoli Libyan Arab 13.200000 32.855080 551477 1 -Misurata Libyan Arab 15.166700 32.304661 103302 0 -Port Said Egypt 32.299999 31.199579 382000 0 -Burnley/Nelson United Kingdom 7.755394 36.916698 154209 0 -Aldershot urban area United Kingdom 3.000000 36.749592 222157 0 -Crawley urban area United Kingdom 2.833300 36.416290 107201 0 -Grimsby/Cleethorpes United Kingdom -0.600000 35.694191 137647 0 -High Wycombe urbanarea United Kingdom -0.650000 35.194191 107824 0 -Tanger Morocco -5.833300 35.744190 250000 0 -Casablanca Morocco -7.583300 33.594189 250000 0 -El Jadida Morocco -8.500000 33.210892 250000 0 -Safi Morocco -9.277490 32.299999 250000 0 -Dakar Senegal -17.477909 14.717010 798792 1 -Conakry Guinea -13.688800 9.527906 250000 1 -Birkenhead urban ar United Kingdom 2.671676 6.500000 280521 0 -Malabo Guinea 8.800000 3.722094 34980 1 -E. London S. Africa 27.872089 -32.972099 119727 0 -Maputo Mozambique 32.555401 -25.938789 882601 1 -Dar es Salaam Tanzania 39.299999 -6.877902 1096000 0 -Tanga Tanzania 39.099998 -5.094606 172000 0 -Mombasa Kenya 39.694599 -4.038794 442369 0 -Djibouti Djibouti 43.155399 11.527490 250000 1 -Apia Samoa -171.750000 -13.935430 250000 1 -Paga Pago American Samoa -170.716705 -14.311840 3075 1 -Papeete French Polynesia -149.566696 -17.578449 23496 1 -Vancouver Canada -123.000000 49.238159 250000 0 -Tacoma USA -122.500000 47.221561 158950 0 -Arica Chile -70.288147 -18.500000 158422 0 -Vina del Mar Chile -71.538147 -33.033298 261118 0 -Talcahuano Chile -73.121460 -36.666000 217660 0 -Mar del Plata Argentina -57.578442 -38.000000 448000 0 -La Plata Argentina -57.961842 -34.911839 250000 0 -Montevideo Uruguay -56.166698 -34.871559 1247920 1 -Rio Grande Brazil -52.133301 -32.095139 164636 0 -Guaruja Brazil -46.366600 -23.909719 186817 0 -Santos Brazil -46.366600 -23.843019 461096 0 -Camaragibe Brazil -35.483299 -9.321556 113062 0 -Maceio Brazil -35.733299 -9.621556 484094 0 -Recife Brazil -34.883301 -8.054856 1289627 0 -Cayenne French Guiana -52.345139 4.871556 38093 1 -Cumana Venezuela -64.199997 10.528440 218413 0 -Caracas Venezuela -66.933296 10.538160 1246677 1 -Maracaibo Venezuela -71.661842 10.733300 1124432 0 -Cartagena Colombia -75.504860 10.400000 250000 0 -La Ceiba Honduras -86.750000 15.704860 103600 0 -Belize City Belize -88.256989 17.483299 39041 1 -Coatzacoalcos Mexico -94.416603 18.121450 127170 0 -St. Petersburg USA -82.666702 27.795151 239410 0 -Fort Pierce USA -80.378441 27.466700 36890 0 -Charleston (S.C.) USA -80.011841 32.799999 68900 0 -Newport News USA -76.433296 36.938160 161700 0 -Atlantic City USA -74.461830 39.416698 35980 0 -Jersey City USA -73.955360 40.716599 219480 0 -New York USA -74.000000 40.750000 7262700 0 -Providence USA -71.250000 41.728439 157200 0 -St. John's St. Pierre and Miquelon -56.295139 46.816700 5416 1 -Arecibo Puerto Rico -66.733299 18.438160 250000 0 -Baymon Puerto Rico -66.166702 18.354860 185087 0 -Carolina Puerto Rico -65.949997 18.338160 147835 0 -San Juan Puerto Rico -66.133301 18.438160 250000 1 -Basse-Terre St. Christopher and Nevis -62.716702 17.206989 14161 1 -Point-a-Pitre Guadeloupe -61.443008 16.233299 29522 1 -Roseau Dominica -61.338161 15.300000 10417 1 -Castries St. Lucia -60.938171 14.016700 40451 1 -Willemstad Neths. Anttilles -69.020287 12.200000 43546 1 -Georgetown Cayman Is -81.334846 19.284849 7617 1 -Praia Cape Verde -23.545151 14.928440 57748 1 -Guayaquil Ecuador -79.914909 -2.216600 1272014 0 -Sittwe Burma 92.878403 20.135241 107607 0 -Manzhouli China 117.466698 49.542679 104220 0 -Bombay India 72.849998 18.977501 10243405 0 -Cochin India 76.250000 9.911202 513249 0 -Galle Sri Lanka 80.238800 6.016700 109000 0 -Madras India 80.277908 13.083300 3276622 0 -Masulipatnam India 81.177887 16.200001 138530 0 -Kakinada India 82.266998 16.983299 226409 0 -George Town Malaysia 100.294601 5.394602 248241 0 -Bandung Indonesia 103.250000 0.538698 1462637 0 -Kota Kinabalu Sabah 116.110901 5.983300 108725 1 -Davao Philippines 125.633301 7.105399 748211 0 -Bago Philippines 122.855400 10.566700 120159 0 -Cadiz Philippines 123.300003 10.927900 140241 0 -Iligan Philippines 122.283699 18.299999 205354 0 -Matsubara Japan 128.894897 27.806511 429413 0 -Cheju Korea 126.483299 33.472500 203298 0 -Haikou China 110.416702 20.017010 263280 0 -Macau Macau 113.561203 22.266701 241413 1 -Inchon Korea 126.655403 37.500000 1387491 0 -Chinhae Korea 128.783295 35.105400 121406 0 -Pohang Korea 129.433304 35.977901 261256 0 -Otaru Japan 140.983307 43.189098 174558 0 -Niigata Japan 139.077499 37.900410 468932 0 -Hitachi Japan 140.644608 36.605400 205673 0 -Yaizu Japan 138.333298 34.888802 110395 0 -Izumi (Osaka) Japan 135.432602 34.500000 139660 0 -Kakogawa Japan 134.866699 34.694199 229923 0 -Niihama Japan 133.250000 33.927898 133921 0 -Imabari Japan 132.983307 34.044601 125421 0 -Beppu Japan 131.477905 33.299999 132352 0 -Habra India 88.784012 25.472811 250000 0 -Cagayan de Oro Philippines 124.666702 8.450714 294844 0 -Cebu Philippines 123.900703 10.315890 571538 0 -Lapu-Lapu Philippines 123.934097 10.332590 114987 0 -Townsville Australia 146.734802 -19.249281 101700 0 -Tripoli Lebanon 35.865891 34.417419 127611 0 -Muscat Oman 58.578621 23.562019 5080 1 -Doha Qatar 51.534828 25.217409 217294 1 -Manama Bahrain 50.568130 26.200001 108684 1 -Bushehr Iran 50.833302 28.918131 120000 0 -Okinawa Japan 128.000000 26.633471 104783 0 -Zama Japan 139.384201 35.498322 100482 0 -Hawalli Kuwait 47.965271 29.333300 130565 0 -Rawalpindi Pakistan 73.133301 33.597130 250000 0 -Mandaue Philippines 120.611198 13.833300 147599 0 -Kotte Sri Lanka 79.951439 6.900000 104000 0 -Colombo Sri Lanka 79.866699 6.916700 683000 1 -Cean France -0.366600 49.183300 115180 0 -Cadiz Spain -6.247236 36.533298 155219 0 -Monaco Monaco 7.416600 43.750889 27063 1 -Torre del Greco Italy 14.384290 40.801880 104866 0 -Ancona Italy 13.481520 43.581520 105562 0 -Venezia Italy 12.333300 45.486061 339272 0 -Iraclion Greece 25.200001 35.315708 101634 0 -Samsun Turkey 36.349110 41.265709 240674 0 -Trabzon Turkey 39.716702 40.982410 142008 0 -Bourgas Bulgaria 27.448120 42.500000 182549 0 -Varna Bulgaria 27.950001 43.217590 302211 0 -Constanta Romania 28.631519 44.200001 323236 0 -Odessa USSR 30.749109 46.500000 1141000 0 -Ordzhonikidze USSR 35.331520 44.966702 308000 0 -Batumi USSR 41.635181 41.599110 133000 0 -Catania Italy 15.115710 37.534290 379039 0 -Valletta Malta 14.498120 35.900002 9263 1 -Palermo Italy 13.383300 38.098122 714246 0 -Vigo Spain -8.733300 42.214821 261878 0 -Santander Spain -3.800000 43.378761 186455 0 -Lorient France -3.350000 47.767590 250000 0 -Liepaya USSR 21.017590 56.482410 113000 0 -Helsinki Finland 25.000000 60.221241 486658 1 -Severodvinsk USSR 39.833302 64.565712 234000 0 -Thorshavn Faeroe Islands -6.818478 62.033298 10726 1 -Reykjavik Iceland -21.966700 64.132423 250000 1 -Calithea Greece 23.700001 37.967590 117319 0 -Belfast Northern Ireland -5.956420 54.596241 318600 1 -Auckland New Zealand 174.604904 -36.916698 148400 0 -Kaliningrad (Moskovskaya oblas USSR 37.916698 55.933300 144000 0 -Kaliningrad (Kaliningradskaya USSR 20.500000 54.666698 389000 0 -Namangan USSR 71.683296 41.391350 283000 0 -Birmingham USA -86.916603 33.500000 277510 0 -Canoas Brazil -51.166599 -28.916599 262156 0 -Mage Brazil -43.000500 -22.616600 200100 0 -Vitoria de Santo Antao Brazil -35.233299 -8.166600 100617 0 -Kabul Afghanistan 69.166603 34.500000 1297000 0 -Chengdu China 104.000999 30.616659 2499000 0 -Dalian China 121.616699 38.883301 1480240 0 -Jinhua China 119.666603 29.000999 869460 0 -Lhasa China 91.166603 29.683300 343240 0 -Liaoyuan China 125.166603 42.883301 771510 0 -Qiqihar China 124.000000 47.383301 1209180 0 -Qitaihe China 130.833298 45.783298 283420 0 -Quanzhou China 118.599998 24.883301 403180 0 -Shaoxing China 120.583298 30.000330 1091170 0 -Shihezi China 86.166603 44.316662 563740 0 -Balurghat India 88.833298 25.200001 104621 0 -Jaipur India 75.833298 26.883329 977165 0 -Munge India 81.699997 22.000660 129260 0 -New Delhi India 77.216599 28.616659 273036 0 -Rampur India 79.000504 28.799999 204610 0 -Ranchi India 85.333298 23.366600 489626 0 -Ratlam India 75.000999 23.299999 142319 0 -Sagar India 78.733299 23.833300 160392 0 -Koganei Japan 139.466599 35.716660 102190 0 -Yokosuka Japan 139.649994 35.299999 430440 0 -Salmiya Kuwait 48.000832 29.001499 113943 0 -Freiburg im Breisgau Germany 7.866600 48.000000 186156 0 -Voronezh USSR 39.216599 51.666000 860000 0 -Huntington Beach USA -117.972603 33.694019 183620 0 -Sao Vicente Brazil -46.465580 -23.950001 240849 0 -Naha Japan 127.673698 26.166599 309339 0 -Chiba Japan 140.119995 35.578640 791799 0 -Kastisima Nigeria 7.533300 13.000000 109424 0 -Sao Jose Brazil -48.666000 -27.583300 106124 0 -Liangmen China 113.000801 22.666000 212450 0 -Liaozuo China 113.216599 35.233299 484370 0 -Kuytun China 85.000000 44.500000 239870 0 -Pingdong China 120.500000 22.666000 165360 0 -Higashimurayama Japan 139.500000 35.750000 126533 0 -Koshigaya Japan 144.783295 43.883331 259937 0 -Minoo Japan 136.933304 35.566601 114421 0 -Noda Japan 141.833298 40.000832 106903 0 -Oyama Japan 139.800003 36.299999 135559 0 -Sagamihara Japan 139.332993 35.583000 486679 0 -Seto Japan 137.001007 35.233299 122296 0 -Tama Japan 139.449997 35.650002 125479 0 -Yachiyo Japan 140.001007 35.750000 142402 0 -Uijong Korea 127.000000 37.799999 162701 0 -Ulsan Korea 129.350006 35.533298 551320 0 -Silay Philippines 122.983299 10.750000 127685 0 -Banya Luka Yugoslavia 17.183300 44.783298 123937 0 -Paranque Philippines 120.987297 14.489200 252791 0 -Las Pinas Philippines 120.973999 14.474450 190364 0 -Muntilupa Philippines 121.055199 14.400000 172421 0 -Gaoxiong China 120.314598 22.600000 828191 0 -Iwaki Japan 140.889404 37.027649 112467 0 -Kure Japan 132.553406 34.233299 227602 0 -Menia Egypt 30.750000 28.000999 203000 0 -E. Rand S. Africa 28.333330 -26.250000 250000 0 -Kayamnandi S. Africa 18.850000 -33.916660 220548 0 -Shitajkonj Bangladesh 89.699997 24.450001 250000 0 -Bangiao China 103.933296 26.183331 114600 0 -Uhai China 106.866699 39.783329 266620 0 -Khoy Iran 44.966671 38.533329 102000 0 -Oroumich Iran 45.000332 37.533329 262000 0 -AlSulaimaniya Iraq 45.450001 35.533329 103091 0 -Abiko Japan 140.000198 35.866661 113239 0 -Higashiosaka Japan 135.583298 34.666660 503529 0 -Ikeda Japan 135.383301 34.866661 100923 0 -Kashiwa Japan 139.816696 35.866661 279339 0 -Changweon Korea 128.616699 35.266670 173543 0 -Cheonan Korea 127.001503 36.799999 170088 0 -Cheongju Korea 127.449997 36.650002 350279 0 -Kumi Korea 128.333298 36.001331 142148 0 -Puchon Korea 126.750000 37.516670 456318 0 -Seongnam Korea 127.001297 37.416660 447839 0 -Weoju Korea 127.933296 37.333328 151372 0 -D.G.Khan Pakistan 70.733330 30.000830 250000 0 -Taguig Philippines 121.000702 14.533330 130719 0 -Toledo Philippines 123.633301 10.383330 104909 0 -Dimitrovgrad USSR 49.616661 54.233330 119000 0 -Zhivastuz USSR 75.166656 51.833328 130000 0 -Jiaojing China 121.391502 28.608160 150620 0 -Mogpo Korea 126.441803 34.841839 236078 0 -Yeosu Korea 127.674797 34.733330 171929 0 -Navotas Philippines 121.008499 14.708500 146899 0 -Campha Viet Nam 107.316704 21.037001 76697 0 -Douglas Isle of Man -4.483300 54.150002 20368 1 -Blackburn United Kingdom -2.483300 53.750000 110254 0 -Blackpool United Kingdom -3.050000 53.833302 149012 0 -Brighton United Kingdom -0.166700 50.833302 137985 0 -Cardiff United Kingdom -3.216700 51.500000 266267 0 -Coventry United Kingdom -1.500000 52.416698 322573 0 -Derby United Kingdom -1.500000 52.916698 220681 0 -Doncaster United Kingdom -1.116700 53.533298 133178 0 -Edinburgh United Kingdom -3.216700 55.950001 420169 0 -Ipswich United Kingdom 1.166700 52.066700 131131 0 -Leicester United Kingdom -1.083300 52.633301 328835 0 -Liverpool United Kingdom -2.916700 53.416698 544861 0 -London United Kingdom -0.166700 51.500000 7677719 1 -Luton United Kingdom -0.416700 51.883301 164743 0 -Manchester United Kingdom -2.250000 53.500000 2338725 0 -Mansfield United Kingdom -1.183300 53.150002 155466 0 -Tyneside United Kingdom -1.583300 54.983299 782410 0 -Newport United Kingdom -3.000000 51.583302 116658 0 -Northampton United Kingdom -0.900000 52.233299 155694 0 -Teesside United Kingdom -1.333300 54.583302 382690 0 -Norwich United Kingdom 1.300000 52.633301 173286 0 -Nottingham United Kingdom -1.166700 52.966702 277203 0 -Oxford United Kingdom -1.250000 51.766701 119909 0 -Peterborough United Kingdom -0.250000 52.583302 114733 0 -Plymouth United Kingdom -4.166700 50.383301 242560 0 -Portsmouth United Kingdom -1.083300 50.799999 177905 0 -Preston United Kingdom -2.700000 53.766701 168405 0 -Reading United Kingdom -0.983300 51.466702 198341 0 -The Medway towns United Kingdom 0.500000 51.366699 216694 0 -Rotherham United Kingdom -1.333300 53.433300 123312 0 -St. Albans/Hatfield United Kingdom -0.350000 51.766701 110483 0 -St. Helens United Kingdom -2.733300 53.466702 114822 0 -Sheffield United Kingdom -1.500000 53.383301 477257 0 -Southampton United Kingdom -1.416700 50.916698 214802 0 -Southend on Sea United Kingdom 0.716700 51.549999 156969 0 -The Potteries United Kingdom -2.166700 53.000000 376764 0 -Sunderland United Kingdom -1.383300 54.916698 195896 0 -Swansea United Kingdom -3.950000 51.633301 175172 0 -Thanet United Kingdom 1.250000 51.366699 114564 0 -Warrington United Kingdom -2.616700 53.400002 130333 0 -Wigan United Kingdom -2.633300 53.549999 179078 0 -Bristol United Kingdom -2.833300 51.366699 420234 0 -York United Kingdom -1.083300 53.966702 126377 0 -Dundee Scotland -3.000000 56.466702 174345 0 -Glasgow Scotland -4.250000 55.883301 765030 0 -Kingston upon Hull United Kingdom -0.333000 53.750000 325485 0 -Aberdeen Scotland -2.084289 57.166698 190465 0 -Poole United Kingdom -1.983300 50.734291 124974 0 -Bournmouth United Kingdom -1.900000 50.734192 148382 0 -Barnsley United Kingdom -1.483300 53.549999 128157 0 diff --git a/data/graphics/blur.bmp b/data/graphics/blur.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0c1628bc0e3c217cad7d0c7dc1b12eef229525db GIT binary patch literal 146996 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 aANO$|_i-QhaUb__ANO$|_i-Q3tN4FsD*)>N literal 0 HcmV?d00001 diff --git a/lines.lua b/lines.lua index 904aa44..0cd8bd7 100644 --- a/lines.lua +++ b/lines.lua @@ -3,6 +3,18 @@ local t = {} local lfs = love.filesystem local lg = love.graphics +local polygon = { x = 180, X = -180, y = 100, Y = -100 } --default empty bounding box +local polymt = { __index = polygon } + +function polygon:formatDisplayInfo() + return ([[ + x: %f + y: %f + X: %f + Y: %f + N: %d]]):format( self.x, self.y, self.X, self.Y, #self ) +end + function t.load( filename ) local polys = { visible = true } local poly = {} @@ -12,7 +24,7 @@ function t.load( filename ) if line:find "b" then k = 1 if #poly > 2 then n = n + 1 end - poly = {} + poly = setmetatable({}, polymt) --axis-aligned bounding box polys[n] = poly else local _, _, x, y = line:find( "(%g+)%s+(%g+)" ) @@ -20,12 +32,16 @@ function t.load( filename ) if x and y then poly[k], poly[ k + 1 ] = x, y k = k + 2 + if x < poly.x then poly.x = x end + if x > poly.X then poly.X = x end + if y < poly.y then poly.y = y end + if y > poly.Y then poly.Y = y end else print( "LINES: malformed line:", filename, line ) end end end - + if not polys[n] or (#(polys[n]) < 3) then polys[n] = nil n = n - 1 @@ -35,25 +51,51 @@ function t.load( filename ) return setmetatable( polys, {__index = t } ) end +function t.selectNearest( lines, wx, wy ) + local d = math.huge + local nearest + for i, poly in ipairs( lines ) do + if poly.x - 5 < wx and + poly.X + 5 > wx and + poly.y - 5 < wy and + poly.Y + 5 > wy then + for k = 1, #poly, 2 do + local x, y = poly[k], poly[k + 1] + local r = ( x - wx ) * ( x - wx ) + ( y - wy ) * ( y - wy ) + if r < d then + d = r + nearest = poly + end + end + end + end + return nearest +end + function t.save( lines, filename ) - - + print( "=== SAVING LINES ===" ) + local str = {} + for i, poly in ipairs( lines ) do + str[i] = table.concat( poly, " " ) + end + str = table.concat( str, "\nb\n" ):gsub("(%S+) (%S+) ", "%1 %2\n") + return str end function t.newPolygon( x, y ) - + end function t.addToCurrentPolygon( x, y ) - + end function t.deletePolygon( poly ) - + end function t.drawPolygonEditHandles( poly ) - + end function t.draw( lines ) diff --git a/main.lua b/main.lua index 5de4f71..1db3b3b 100644 --- a/main.lua +++ b/main.lua @@ -14,11 +14,14 @@ function love.load() assert( lfs.createDirectory( SAVEDIRECTORY.."data/graphics" )) - love.graphics.setNewFont( 12, "mono" ) + love.graphics.setNewFont( 14 )--, "mono" ) end function love.directorydropped( path ) - if map.path then assert( love.filesystem.unmount( map.path ) ) end + if map.path then + assert( love.filesystem.unmount( map.path ) ) + map.loaded = false + end love.filesystem.mount( path, "" ) return map.load( path ) end @@ -37,72 +40,34 @@ function love.update( dt ) end -local toolButtons = { - "Brush", - "Move Nodes", - "Add Nodes", - "Edit Node", - "Draw Polygon", - "Erase Polygon" -} - -local layerButtons = { - "Africa", - "Europe", - "North America", - "South America", - "Asia", - "Russia", - "Travel Nodes", - "AI Markers", - "Cities", - "Coastlines", - "Coastlines Low", - "Sailable" -} - - function love.draw() if not map.loaded then - return love.graphics.print( "Drag and drop folder to begin.") + local w, h = love.graphics.getDimensions() + return love.graphics.printf( "Drag and drop folder to begin.", w / 2 - 200, h / 2 - 128, 200, "center") end love.graphics.push( "all" ) map.draw() love.graphics.pop() - --Layer buttons. - do - love.graphics.setColor( 1, 1, 1, 1 ) - local h = love.graphics.getHeight() - 60 - for x = 0, 300, 30 do - love.graphics.rectangle( "line", x, h, 30, 30 ) - end - - end - --Status bar. local x, y = love.mouse.getPosition() local wx, wy = Camera.GetWorldCoordinate( x, y ) local bx, by = Camera.GetBitmapCoordinate( x, y ) - local h = love.graphics.getHeight() - 30 - love.graphics.setColor( 0.2, 0.1, 0.1, 1.0 ) - love.graphics.rectangle( "fill", 0, h, love.graphics.getWidth() / 2, 30 ) + local h = love.graphics.getHeight() - 60 + love.graphics.setColor( 0.1, 0.1, 0.5, 0.8 ) + love.graphics.rectangle( "fill", 0, 0, 250, love.graphics.getHeight() ) love.graphics.setColor( 1, 1, 1, 1 ) - love.graphics.rectangle( "line", 0, h, love.graphics.getWidth() / 2, 30 ) - love.graphics.print(("SCREEN\t%d\t%d\nWORLD \t%5.2f\t%5.2f"):format(x, y, wx, wy), 0, h) - love.graphics.print(("BITMAP\t%5.2f\t%5.2f"):format(bx, by), 200, h ) + love.graphics.print(([[ + SCREEN%8d%8d + WORLD %8.2f%8.2f + BITMAP%8.2f%8.2f]]):format(x, y, wx, wy, bx, by), 0, 0) - --Edit box. - love.graphics.rectangle( "line", love.graphics.getWidth() / 2, h, love.graphics.getWidth() / 2, 30 ) - if map.selected then - love.graphics.setColor( 0.2, 0.1, 0.1, 1.0 ) - love.graphics.rectangle( "fill", 0, 0, 150 ,100 ) - love.graphics.setColor( 1, 1, 1, 1 ) - love.graphics.rectangle( "line", 0, 0, 150 ,100 ) - love.graphics.setColor( 1.2, 1.1, 1.1, 1.5 ) - love.graphics.print( map.selected:formatDisplayInfo(), 0, 0 ) - end + if map.selected then love.graphics.print( map.selected:formatDisplayInfo(), 0, 80 ) end + if map.selectionLocked then end + + love.graphics.setColor( 1, 1, 1, 0.8 ) + button:draw() end function love.resize(w, h) @@ -113,59 +78,166 @@ function love.wheelmoved(x, y) Camera.Zoom( (y > 0) and 0.5 or -0.5 ) end -function love.mousepressed( x, y, button, istouch, presses ) +function love.mousepressed( x, y, mouseButton, istouch, presses ) local wx, wy = Camera.GetWorldCoordinate( x, y ) - if map.loaded then - if button == 1 then - map.cities.lockSelection() - else - map.cities.unlockSelection() - end - end print( ("MOUSE\tx %f\ty %f\twx %f\twy %f"):format(x, y, wx, wy) ) + if button.selected and button.selected:contains( x, y ) then button.selected:callback() end end function love.mousemoved( x, y, dx, dy, istouch ) - local wx, wy = Camera.GetWorldCoordinate( x, y ) - if map.loaded then - if map.cities.visible then map.selected = map.cities:selectNearest( wx, wy ) - elseif map.travelnodes.visible then map.selected = map.travelnodes:selectNearest( wx, wy ) - elseif map.ainodes.visible then map.selected = map.ainodes:selectNearest( wx, wy ) - end + if not map.loaded then return end + --mouse over menu + button.selectIn( x, y ) + + --mouse on map + if map.selectionLocked then return end + if map.editLayer and map.editLayer.selectNearest then + map.selected = map.editLayer:selectNearest( Camera.GetWorldCoordinate( x, y ) ) end end -local function ToggleVisibility( layer ) - if not layer then return end - local ml - if map[layer] then ml = map[layer] end - if map.territory[layer] then ml = map.territory[layer] end - assert( ml ) - ml.visible = not( ml.visible ) - print( layer, ml.visible ) -end - -local layerVisibilityKeybinds = { - ["1"] = "africa", - ["2"] = "europe", - ["3"] = "northamerica", - ["4"] = "southamerica", - ["5"] = "southasia", - ["6"] = "russia", - ["7"] = "sailable", - ["8"] = "coastlines", - ["9"] = "coastlinesLow", - ["0"] = "international", - ["-"] = "cities", - ["="] = "travelnodes", - ["backspace"] = "ainodes", -} - -function love.keypressed(key) - ToggleVisibility( layerVisibilityKeybinds[key] ) +function love.keypressed(key, code, isRepeat) wasKeyPressed = true - + + if code == "down" then return button.selectNext() end + if code == "up" then return button.selectPrev() end + if code == "return" then return button.selected:callback() end + if key == "l" then return map.save() end + if key == "c" then + map.selectionLocked = not( map.selectionLocked ) + end end + + + +do + + button.new{ name = "UNDO", y = 250, callback = map.undo } + + local function toolCallback( self ) + local f = (map.layers[self.layer])[self.name] + if f then return f(self) end + end + + local tools = { + button.new{ name = "SELECT"}, + button.new{ name = "ERASE",}, + button.new{ name = "MOVE", }, + button.new{ name = "ADD", }, + button.new{ name = "EDIT", }, + button.new{ name = "DRAW", }, + } + for i, v in ipairs( tools ) do + v.callback = toolCallback + v.y = 250 + (v.h + 4) * ( i + 1 ) + v.visible = false + end + + + local layerButtons = {} + + local function back( self ) + for k, button in pairs( tools ) do button.visible = false end + for k, button in pairs( layerButtons ) do button.visible = true end + self.visible = false + map.editLayer = false + end + + local backButton = button.new{ + name = "BACK", + visible = false, + y = 250 + button.h + 4, + callback = back, + } + + local layers = { + { name = "AF", layer = "africa" }, + { name = "EU", layer = "europe" }, + { name = "NA", layer = "northamerica" }, + { name = "SA", layer = "southamerica" }, + { name = "AS", layer = "southasia" }, + { name = "RU", layer = "russia" }, + { name = "PATH", layer = "travelnodes" }, + { name = "AI", layer = "ainodes" }, + { name = "CITY", layer = "cities" }, + { name = "COAST", layer = "coastlines" }, + { name = "LOW", layer = "coastlinesLow"}, + { name = "SAIL", layer = "sailable" }, + } + + local visibilityIcon = love.graphics.newImage( "icons/eye.bmp" ) + local function toggleVisibleLayer( self ) + if not (self and self.layer) then return end + local ml = map.layers[ self.layer ] + ml.visible = not( ml.visible ) + self.icon = ml.visible and visibilityIcon + end + + local soloIcon = love.graphics.newImage( "icons/eye.bmp" ) + local function soloVisibleLayer( self ) + --hide icons for disabled invisible layers + print( "===SOLO LAYER===", self.layer ) + for i, button in ipairs( layerButtons ) do + if button.layer ~= self.layer then + button.icon = false + end + end + for k, layer in pairs( map.layers ) do + print( "invisible layer, map:", k, layer) + layer.visible = false + end + map.layers[ self.layer ].visible = true + end + + local function editLayer( self ) + map.editLayer = map.layers[ self.layer ] + for k, button in pairs( layerButtons ) do button.visible = false end + for k, button in pairs( tools ) do + button.visible = true + button.layer = self.layer + end + backButton.visible = true + return soloVisibleLayer( self ) + end + + local function copy( i, target ) + for k, v in pairs( layers[i] ) do + target[k] = target[k] or v + end + return target + end + + + local y = 250 + for i = 1, #layers do + + layerButtons[ 3 * i - 2 ] = button.new( copy( i, { + x = 8, + y = y + (button.h + 4) * i, + w = 112, + callback = editLayer + })) + + layerButtons[ 3 * i - 1 ] = button.new( copy( i, { + x = 128, + y = y + (button.h + 4) * i, + w = 24, + name = "V", + callback = toggleVisibleLayer, + icon = visibilityIcon, + })) + + layerButtons[ 3 * i ] = button.new( copy( i, { + x = 160, + y = y + (button.h + 4) * i, + w = 24, + name = "S", + callback = soloVisibleLayer, + icon = soloIcon + })) + end +end + diff --git a/map.lua b/map.lua index 1a1fd33..d024fb3 100644 --- a/map.lua +++ b/map.lua @@ -6,11 +6,31 @@ local Nodes = require 'travelNodes' local Camera = require 'camera' local Territory = require 'territory' -local map = { - loaded = false, +--flat list of editable layers for convenience +local layers = { coastlines = false, coastlinesLow = false, international = false, + africa = false, + europe = false, + northamerica = false, + russia = false, + southamerica = false, + southasia = false, + travelnodes = false, + sailable = false, + ainodes = false, + cities = false, +} + +local map = { + layers = layers, + path = false, + loaded = false, + selected = false, + selectionLocked = false, + editLayer = false, + territory = { africa = false, europe = false, @@ -19,6 +39,11 @@ local map = { southamerica = false, southasia = false }, + + background = false, + coastlines = false, + coastlinesLow = false, + international = false, travelnodes = false, sailable = false, ainodes = false, @@ -26,6 +51,7 @@ local map = { } function map.load( path ) + map.background = lg.newImage( "data/graphics/blur.bmp" ) map.cities = Cities.load( "data/earth/cities.dat" ) map.coastlines = Lines.load( "data/earth/coastlines.dat" ) map.coastlinesLow = Lines.load( "data/earth/coastlines-low.dat" ) @@ -38,6 +64,11 @@ function map.load( path ) end map.loaded = true map.path = path + + --update references + for k, v in pairs( layers ) do + layers[k] = map[k] or map.territory[k] + end end function map.draw() @@ -45,10 +76,13 @@ function map.draw() if not map.loaded then return end do --territory - lg.setColor( 1,1,1,1) lg.setLineJoin( "none" ) lg.replaceTransform( Camera.tfTerritory ) lg.setBlendMode( "add" ) + + lg.setColor( 1, 1, 1, 0.2 ) + lg.draw( map.background ) + lg.setColor( 1, 1, 1, 0.5 ) for k, v in pairs(map.territory) do if v.visible then v:draw() @@ -78,12 +112,21 @@ function map.draw() do --all this stuff is drawn in world coordinates, ( -180, 180 ) x ( -100, 100 ) lg.replaceTransform( Camera.tf ) - + if map.selected then - lg.setColor( 1.0, 0.5, 0.5, 0.9 ) - lg.setLineJoin( "miter" ) - lg.setLineWidth( 1.0 / Camera.zoom ) - lg.circle( "line", map.selected.x, map.selected.y, 0.2 + 1.0 / Camera.zoom ) + if map.selected[1] then --lines + local p = map.selected + lg.setColor( 0.4, 0.5, 0.8, 0.5 ) + lg.setLineWidth( 0.2 / Camera.zoom ) + lg.rectangle( "fill", p.x, p.y, p.X - p.x, p.Y - p.y ) + lg.setColor( 1.0, 0, 0, 1 ) + lg.line( p ) + else --points + lg.setColor( 1.0, 0.5, 0.5, 0.9 ) + lg.setLineJoin( "miter" ) + lg.setLineWidth( 1.0 / Camera.zoom ) + lg.circle( "line", map.selected.x, map.selected.y, 0.2 + 1.0 / Camera.zoom ) + end end if map.cities.visible then --points @@ -94,7 +137,7 @@ function map.draw() lg.setColor( 1, 1, 0.0, 0.5 ) map.cities.drawCapitals() - + end if map.ainodes.visible then @@ -128,29 +171,33 @@ function map.draw() map.travelnodes:draw() end end - + end end -local function write( filename, string ) +--[[local function write( filename, string ) os.rename( filename, filename..".bak" ) --just in case :^) local file = assert( io.open( filename, "w+" ) ) assert( file:write( string ) ) file:close() +end]] + +local function write( filename, string ) + print( "Pretending to write", string:len(), "bytes to", filename ) end function map.save() write( map.path.."/data/earth/cities.dat", map.cities:save()) - map.coastlines.save() - map.coastlinesLow.save() - map.international.save() - map.sailable.save() - map.travelnodes.save() - map.ainodes.save() + write( map.path.."/data/earth/coastlines.dat", map.coastlines:save()) + write( map.path.."/data/earth/coastlines-low.dat", map.coastlinesLow:save()) + write( map.path.."/data/earth/international.dat", map.international:save()) + map.sailable:save() + map.travelnodes:save() + map.ainodes:save() for k, v in pairs(map.territory) do - map.territory[k].save() + map.territory[k]:save() end end @@ -158,4 +205,8 @@ function map.hover(x, y) end +function map.undo() + print( "=== UNDO ===" ) +end + return map diff --git a/scratch.lua b/scratch.lua deleted file mode 100644 index 39c2b53..0000000 --- a/scratch.lua +++ /dev/null @@ -1,2 +0,0 @@ -local jit = require 'jit' -for k, v in pairs( jit.opt ) do print(k , v ) end \ No newline at end of file diff --git a/territory.lua b/territory.lua index 587ec02..8ef3382 100644 --- a/territory.lua +++ b/territory.lua @@ -144,12 +144,8 @@ function t.computeBorder( territory, threshold, key ) end end -function t.drawConnections( nodes ) - -end - -function t.save( nodes, filename ) - +function t.save( territory ) + end return t \ No newline at end of file diff --git a/travelNodes.lua b/travelNodes.lua index 73b463b..bdb807f 100644 --- a/travelNodes.lua +++ b/travelNodes.lua @@ -14,17 +14,17 @@ local function isConnected( startNode, endNode ) local ix, iy, fx, fy = startNode.x, startNode.y, endNode.x, endNode.y if fx < -180 then fx = fx + 180 end if fx > 180 then fx = fx - 180 end - + local dx, dy = fx - ix, fy - iy local mag = math.sqrt( dx * dx + dy * dy ) local n = 2 * math.floor( mag ) dx, dy = 0.5 * dx / mag, 0.5 * dy / mag - + for i = 1, n do ix, iy = ix + dx, iy + dy if not( isSailable( ix, -iy ) ) then return nil end end - + return true end @@ -41,39 +41,43 @@ function travelNode:formatDisplayInfo() LATITUDE: %3.2f]]):format( self.idx, self.x, self.y ) end +local function worldToBitmap( x, y ) + +end + +local function bitmapToWorld( x, y ) + return 360 * ( x - 800 ) / 800 - 360 / 2 + 360, + 360 * ( 600 / 800 ) * ( y - 600 ) / 600 + 180 +end + function t.load( filename, sailable ) - + isSailable = sailable local img, imgd = bmp.load( filename ) local nodes = { visible = true, nodes = {}, points = {}, connections = {}, img = img } - - print( "=== Loading Nodes: ===" ) local n = 1 for x = 0, 799 do for y = 0, 399 do if imgd:getPixel( x, 399 - y ) > 0 then - local long = 360 * ( x - 800 ) / 800 - 360 / 2 + 360 - local lat = 360 * ( 600 / 800 ) * ( 600 - y ) / 600 - 180 - nodes.nodes[n] = setmetatable({x = long, y = -lat, idx = n}, mtTravelNode ) - print( nodes.nodes[n]:formatDisplayInfo() ) + local long, lat = bitmapToWorld( x, y ) + nodes.nodes[n] = setmetatable({x = long, y = lat, idx = n}, mtTravelNode ) nodes.points[ 2 * n - 1 ] = long nodes.points[ 2 * n ] = lat n = n + 1 end end end - + for i, srcNode in ipairs( nodes.nodes ) do local adjacent = {} - + for j, destNode in ipairs( nodes.nodes ) do adjacent[j] = isConnected( srcNode, destNode ) end - + nodes.connections[i] = adjacent end - - print( "=== Nodes Loaded ===" ) + nodes.nodes = locationQuery.New( nodes.nodes ) setmetatable( nodes, {__index = t} ) return nodes @@ -81,7 +85,7 @@ end --Determine if graph has more than one connected component. function t.isConnected( nodes ) - + end function t.draw( nodes ) @@ -92,18 +96,18 @@ function t.draw( nodes ) end function t.drawConnections( nodes ) - + for i, connection in pairs( nodes.connections ) do for j in pairs( connection ) do local ix, iy, fx, fy = nodes.nodes[i].x, nodes.nodes[i].y, nodes.nodes[j].x, nodes.nodes[j].y - lg.line( ix, -iy, fx, -fy ) + lg.line( ix, iy, fx, fy ) end end - + end function t.save( nodes, filename ) - + end return t \ No newline at end of file