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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 Y5@;mQNT88GBY{Q&jRYDA+<*lB17|A$>i_@% 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