Cities.php 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. <?php
  2. /**
  3. * Zend Framework
  4. *
  5. * LICENSE
  6. *
  7. * This source file is subject to the new BSD license that is bundled
  8. * with this package in the file LICENSE.txt.
  9. * It is also available through the world-wide-web at this URL:
  10. * http://framework.zend.com/license/new-bsd
  11. * If you did not receive a copy of the license and are unable to
  12. * obtain it through the world-wide-web, please send an email
  13. * to license@zend.com so we can send you a copy immediately.
  14. *
  15. * @category Zend
  16. * @package Zend_Date
  17. * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  18. * @license http://framework.zend.com/license/new-bsd New BSD License
  19. * @version $Id$
  20. */
  21. /**
  22. * Additional data for sunset/sunrise calculations
  23. *
  24. * Holds the geographical data for all capital cities and many others worldwide
  25. * Original data from http://www.fallingrain.com/world/
  26. *
  27. * @category Zend
  28. * @package Zend_Date
  29. * @subpackage Zend_Date_Cities
  30. * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  31. * @license http://framework.zend.com/license/new-bsd New BSD License
  32. */
  33. class Zend_Date_Cities
  34. {
  35. /**
  36. * Array Collection of known cities
  37. *
  38. * The array contains 'latitude' and 'longitude' for every known city
  39. *
  40. * @var Array
  41. */
  42. public static $cities = array(
  43. 'Abidjan' => array('latitude' => 5.3411111, 'longitude' => -4.0280556),
  44. 'Abu Dhabi' => array('latitude' => 24.4666667, 'longitude' => 54.3666667),
  45. 'Abuja' => array('latitude' => 9.1758333, 'longitude' => 7.1808333),
  46. 'Accra' => array('latitude' => 5.55, 'longitude' => -0.2166667),
  47. 'Adamstown' => array('latitude' => -25.0666667, 'longitude' => -130.0833333),
  48. 'Addis Ababa' => array('latitude' => 9.0333333, 'longitude' => 38.7),
  49. 'Adelaide' => array('latitude' => -34.9333333, 'longitude' => 138.6),
  50. 'Algiers' => array('latitude' => 36.7630556, 'longitude' => 3.0505556),
  51. 'Alofi' => array('latitude' => -19.0166667, 'longitude' => -169.9166667),
  52. 'Amman' => array('latitude' => 31.95, 'longitude' => 35.9333333),
  53. 'Amsterdam' => array('latitude' => 52.35, 'longitude' => 4.9166667),
  54. 'Andorra la Vella' => array('latitude' => 42.5, 'longitude' => 1.5166667),
  55. 'Ankara' => array('latitude' => 39.9272222, 'longitude' => 32.8644444),
  56. 'Antananarivo' => array('latitude' => -18.9166667, 'longitude' => 47.5166667),
  57. 'Apia' => array('latitude' => -13.8333333, 'longitude' => -171.7333333),
  58. 'Ashgabat' => array('latitude' => 37.95, 'longitude' => 58.3833333),
  59. 'Asmara' => array('latitude' => 15.3333333, 'longitude' => 38.9333333),
  60. 'Astana' => array('latitude' => 51.1811111, 'longitude' => 71.4277778),
  61. 'Asunción' => array('latitude' => -25.2666667, 'longitude' => -57.6666667),
  62. 'Athens' => array('latitude' => 37.9833333, 'longitude' => 23.7333333),
  63. 'Auckland' => array('latitude' => -36.8666667, 'longitude' => 174.7666667),
  64. 'Avarua' => array('latitude' => -21.2, 'longitude' => -159.7666667),
  65. 'Baghdad' => array('latitude' => 33.3386111, 'longitude' => 44.3938889),
  66. 'Baku' => array('latitude' => 40.3952778, 'longitude' => 49.8822222),
  67. 'Bamako' => array('latitude' => 12.65, 'longitude' => -8),
  68. 'Bandar Seri Begawan' => array('latitude' => 4.8833333, 'longitude' => 114.9333333),
  69. 'Bankok' => array('latitude' => 13.5833333, 'longitude' => 100.2166667),
  70. 'Bangui' => array('latitude' => 4.3666667, 'longitude' => 18.5833333),
  71. 'Banjul' => array('latitude' => 13.4530556, 'longitude' => -16.5775),
  72. 'Basel' => array('latitude' => 47.5666667, 'longitude' => 7.6),
  73. 'Basseterre' => array('latitude' => 17.3, 'longitude' => -62.7166667),
  74. 'Beijing' => array('latitude' => 39.9288889, 'longitude' => 116.3883333),
  75. 'Beirut' => array('latitude' => 33.8719444, 'longitude' => 35.5097222),
  76. 'Belgrade' => array('latitude' => 44.8186111, 'longitude' => 20.4680556),
  77. 'Belmopan' => array('latitude' => 17.25, 'longitude' => -88.7666667),
  78. 'Berlin' => array('latitude' => 52.5166667, 'longitude' => 13.4),
  79. 'Bern' => array('latitude' => 46.9166667, 'longitude' => 7.4666667),
  80. 'Bishkek' => array('latitude' => 42.8730556, 'longitude' => 74.6002778),
  81. 'Bissau' => array('latitude' => 11.85, 'longitude' => -15.5833333),
  82. 'Bloemfontein' => array('latitude' => -29.1333333, 'longitude' => 26.2),
  83. 'Bogotá' => array('latitude' => 4.6, 'longitude' => -74.0833333),
  84. 'Brasilia' => array('latitude' => -15.7833333, 'longitude' => -47.9166667),
  85. 'Bratislava' => array('latitude' => 48.15, 'longitude' => 17.1166667),
  86. 'Brazzaville' => array('latitude' => -4.2591667, 'longitude' => 15.2847222),
  87. 'Bridgetown' => array('latitude' => 13.1, 'longitude' => -59.6166667),
  88. 'Brisbane' => array('latitude' => -27.5, 'longitude' => 153.0166667),
  89. 'Brussels' => array('latitude' => 50.8333333, 'longitude' => 4.3333333),
  90. 'Bucharest' => array('latitude' => 44.4333333, 'longitude' => 26.1),
  91. 'Budapest' => array('latitude' => 47.5, 'longitude' => 19.0833333),
  92. 'Buenos Aires' => array('latitude' => -34.5875, 'longitude' => -58.6725),
  93. 'Bujumbura' => array('latitude' => -3.3761111, 'longitude' => 29.36),
  94. 'Cairo' => array('latitude' => 30.05, 'longitude' => 31.25),
  95. 'Calgary' => array('latitude' => 51.0833333, 'longitude' => -114.0833333),
  96. 'Canberra' => array('latitude' => -35.2833333, 'longitude' => 149.2166667),
  97. 'Cape Town' => array('latitude' => -33.9166667, 'longitude' => 18.4166667),
  98. 'Caracas' => array('latitude' => 10.5, 'longitude' => -66.9166667),
  99. 'Castries' => array('latitude' => 14, 'longitude' => -61),
  100. 'Charlotte Amalie' => array('latitude' => 18.34389, 'longitude' => -64.93111),
  101. 'Chicago' => array('latitude' => 41.85, 'longitude' => -87.65),
  102. 'Chisinau' => array('latitude' => 47.055556, 'longitude' => 28.8575),
  103. 'Cockburn Town' => array('latitude' => 21.4666667, 'longitude' => -71.1333333),
  104. 'Colombo' => array('latitude' => 6.9319444, 'longitude' => 79.8477778),
  105. 'Conakry' => array('latitude' => 9.5091667, 'longitude' => -13.7122222),
  106. 'Copenhagen' => array('latitude' => 55.6666667, 'longitude' => 12.5833333),
  107. 'Cotonou' => array('latitude' => 6.35, 'longitude' => 2.4333333),
  108. 'Dakar' => array('latitude' => 14.6708333, 'longitude' => -17.4380556),
  109. 'Damascus' => array('latitude' => 33.5, 'longitude' => 36.3),
  110. 'Dar es Salaam' => array('latitude' => -6.8, 'longitude' => 39.2833333),
  111. 'Dhaka' => array('latitude' => 23.7230556, 'longitude' => 90.4086111),
  112. 'Dili' => array('latitude' => -8.5586111, 'longitude' => 125.5736111),
  113. 'Djibouti' => array('latitude' => 11.595, 'longitude' => 43.1480556),
  114. 'Dodoma' => array('latitude' => -6.1833333, 'longitude' => 35.75),
  115. 'Doha' => array('latitude' => 25.2866667, 'longitude' => 51.5333333),
  116. 'Dubai' => array('latitude' => 25.2522222, 'longitude' => 55.28),
  117. 'Dublin' => array('latitude' => 53.3330556, 'longitude' => -6.2488889),
  118. 'Dushanbe' => array('latitude' => 38.56, 'longitude' => 68.7738889 ),
  119. 'Fagatogo' => array('latitude' => -14.2825, 'longitude' => -170.69),
  120. 'Fongafale' => array('latitude' => -8.5166667, 'longitude' => 179.2166667),
  121. 'Freetown' => array('latitude' => 8.49, 'longitude' => -13.2341667),
  122. 'Gaborone' => array('latitude' => -24.6463889, 'longitude' => 25.9119444),
  123. 'Geneva' => array('latitude' => 46.2, 'longitude' => 6.1666667),
  124. 'George Town' => array('latitude' => 19.3, 'longitude' => -81.3833333),
  125. 'Georgetown' => array('latitude' => 6.8, 'longitude' => -58.1666667),
  126. 'Gibraltar' => array('latitude' => 36.1333333, 'longitude' => -5.35),
  127. 'Glasgow' => array('latitude' => 55.8333333, 'longitude' => -4.25),
  128. 'Guatemala la Nueva' => array('latitude' => 14.6211111, 'longitude' => -90.5269444),
  129. 'Hagatna' => array('latitude' => 13.47417, 'longitude' => 144.74778),
  130. 'The Hague' => array('latitude' => 52.0833333, 'longitude' => 4.3),
  131. 'Hamilton' => array('latitude' => 32.2941667, 'longitude' => -64.7838889),
  132. 'Hanoi' => array('latitude' => 21.0333333, 'longitude' => 105.85),
  133. 'Harare' => array('latitude' => -17.8177778, 'longitude' => 31.0447222),
  134. 'Havana' => array('latitude' => 23.1319444, 'longitude' => -82.3641667),
  135. 'Helsinki' => array('latitude' => 60.1755556, 'longitude' => 24.9341667),
  136. 'Honiara' => array('latitude' => -9.4333333, 'longitude' => 159.95),
  137. 'Islamabad' => array('latitude' => 30.8486111, 'longitude' => 72.4944444),
  138. 'Istanbul' => array('latitude' => 41.0186111, 'longitude' => 28.9647222),
  139. 'Jakarta' => array('latitude' => -6.1744444, 'longitude' => 106.8294444),
  140. 'Jamestown' => array('latitude' => -15.9333333, 'longitude' => -5.7166667),
  141. 'Jerusalem' => array('latitude' => 31.7666667, 'longitude' => 35.2333333),
  142. 'Johannesburg' => array('latitude' => -26.2, 'longitude' => 28.0833333),
  143. 'Kabul' => array('latitude' => 34.5166667, 'longitude' => 69.1833333),
  144. 'Kampala' => array('latitude' => 0.3155556, 'longitude' => 32.5655556),
  145. 'Kathmandu' => array('latitude' => 27.7166667, 'longitude' => 85.3166667),
  146. 'Khartoum' => array('latitude' => 15.5880556, 'longitude' => 32.5341667),
  147. 'Kigali' => array('latitude' => -1.9536111, 'longitude' => 30.0605556),
  148. 'Kingston' => array('latitude' => -29.05, 'longitude' => 167.95),
  149. 'Kingstown' => array('latitude' => 13.1333333, 'longitude' => -61.2166667),
  150. 'Kinshasa' => array('latitude' => -4.3, 'longitude' => 15.3),
  151. 'Kolkata' => array('latitude' => 22.5697222, 'longitude' => 88.3697222),
  152. 'Kuala Lumpur' => array('latitude' => 3.1666667, 'longitude' => 101.7),
  153. 'Kuwait City' => array('latitude' => 29.3697222, 'longitude' => 47.9783333),
  154. 'Kiev' => array('latitude' => 50.4333333, 'longitude' => 30.5166667),
  155. 'La Paz' => array('latitude' => -16.5, 'longitude' => -68.15),
  156. 'Libreville' => array('latitude' => 0.3833333, 'longitude' => 9.45),
  157. 'Lilongwe' => array('latitude' => -13.9833333, 'longitude' => 33.7833333),
  158. 'Lima' => array('latitude' => -12.05, 'longitude' => -77.05),
  159. 'Lisbon' => array('latitude' => 38.7166667, 'longitude' => -9.1333333),
  160. 'Ljubljana' => array('latitude' => 46.0552778, 'longitude' => 14.5144444),
  161. 'Lobamba' => array('latitude' => -26.4666667, 'longitude' => 31.2),
  162. 'Lomé' => array('latitude' => 9.7166667, 'longitude' => 38.3),
  163. 'London' => array('latitude' => 51.5, 'longitude' => -0.1166667),
  164. 'Los Angeles' => array('latitude' => 34.05222, 'longitude' => -118.24278),
  165. 'Luanda' => array('latitude' => -8.8383333, 'longitude' => 13.2344444),
  166. 'Lusaka' => array('latitude' => -15.4166667, 'longitude' => 28.2833333),
  167. 'Luxembourg' => array('latitude' => 49.6116667, 'longitude' => 6.13),
  168. 'Madrid' => array('latitude' => 40.4, 'longitude' => -3.6833333),
  169. 'Majuro' => array('latitude' => 7.1, 'longitude' => 171.3833333),
  170. 'Malabo' => array('latitude' => 3.75, 'longitude' => 8.7833333),
  171. 'Managua' => array('latitude' => 12.1508333, 'longitude' => -86.2683333),
  172. 'Manama' => array('latitude' => 26.2361111, 'longitude' => 50.5830556),
  173. 'Manila' => array('latitude' => 14.6041667, 'longitude' => 120.9822222),
  174. 'Maputo' => array('latitude' => -25.9652778, 'longitude' => 32.5891667),
  175. 'Maseru' => array('latitude' => -29.3166667, 'longitude' => 27.4833333),
  176. 'Mbabane' => array('latitude' => -26.3166667, 'longitude' => 31.1333333),
  177. 'Melbourne' => array('latitude' => -37.8166667, 'longitude' => 144.9666667),
  178. 'Melekeok' => array('latitude' => 7.4933333, 'longitude' => 134.6341667),
  179. 'Mexiko City' => array('latitude' => 19.4341667, 'longitude' => -99.1386111),
  180. 'Minsk' => array('latitude' => 53.9, 'longitude' => 27.5666667),
  181. 'Mogadishu' => array('latitude' => 2.0666667, 'longitude' => 45.3666667),
  182. 'Monaco' => array('latitude' => 43.7333333, 'longitude' => 7.4166667),
  183. 'Monrovia' => array('latitude' => 6.3105556, 'longitude' => -10.8047222),
  184. 'Montevideo' => array('latitude' => -34.8580556, 'longitude' => -56.1708333),
  185. 'Montreal' => array('latitude' => 45.5, 'longitude' => -73.5833333),
  186. 'Moroni' => array('latitude' => -11.7041667, 'longitude' => 43.2402778),
  187. 'Moscow' => array('latitude' => 55.7522222, 'longitude' => 37.6155556),
  188. 'Muscat' => array('latitude' => 23.6133333, 'longitude' => 58.5933333),
  189. 'Nairobi' => array('latitude' => -1.3166667, 'longitude' => 36.8333333),
  190. 'Nassau' => array('latitude' => 25.0833333, 'longitude' => -77.35),
  191. 'N´Djamena' => array('latitude' => 12.1130556, 'longitude' => 15.0491667),
  192. 'New Dehli' => array('latitude' => 28.6, 'longitude' => 77.2),
  193. 'New York' => array('latitude' => 40.71417, 'longitude' => -74.00639),
  194. 'Newcastle' => array('latitude' => -32.9166667, 'longitude' => 151.75),
  195. 'Niamey' => array('latitude' => 13.6666667, 'longitude' => 1.7833333),
  196. 'Nicosia' => array('latitude' => 35.1666667, 'longitude' => 33.3666667),
  197. 'Nouakchott' => array('latitude' => 18.0863889, 'longitude' => -15.9752778),
  198. 'Noumea' => array('latitude' => -22.2666667, 'longitude' => 166.45),
  199. 'Nuku´alofa' => array('latitude' => -21.1333333, 'longitude' => -175.2),
  200. 'Nuuk' => array('latitude' => 64.1833333, 'longitude' => -51.75),
  201. 'Oranjestad' => array('latitude' => 12.5166667, 'longitude' => -70.0333333),
  202. 'Oslo' => array('latitude' => 59.9166667, 'longitude' => 10.75),
  203. 'Ouagadougou' => array('latitude' => 12.3702778, 'longitude' => -1.5247222),
  204. 'Palikir' => array('latitude' => 6.9166667, 'longitude' => 158.15),
  205. 'Panama City' => array('latitude' => 8.9666667, 'longitude' => -79.5333333),
  206. 'Papeete' => array('latitude' => -17.5333333, 'longitude' => -149.5666667),
  207. 'Paramaribo' => array('latitude' => 5.8333333, 'longitude' => -55.1666667),
  208. 'Paris' => array('latitude' => 48.8666667, 'longitude' => 2.3333333),
  209. 'Perth' => array('latitude' => -31.9333333, 'longitude' => 115.8333333),
  210. 'Phnom Penh' => array('latitude' => 11.55, 'longitude' => 104.9166667),
  211. 'Podgorica' => array('latitude' => 43.7752778, 'longitude' => 19.6827778),
  212. 'Port Louis' => array('latitude' => -20.1666667, 'longitude' => 57.5),
  213. 'Port Moresby' => array('latitude' => -9.4647222, 'longitude' => 147.1925),
  214. 'Port-au-Prince' => array('latitude' => 18.5391667, 'longitude' => -72.335),
  215. 'Port of Spain' => array('latitude' => 10.6666667, 'longitude' => -61.5),
  216. 'Porto-Novo' => array('latitude' => 6.4833333, 'longitude' => 2.6166667),
  217. 'Prague' => array('latitude' => 50.0833333, 'longitude' => 14.4666667),
  218. 'Praia' => array('latitude' => 14.9166667, 'longitude' => -23.5166667),
  219. 'Pretoria' => array('latitude' => -25.7069444, 'longitude' => 28.2294444),
  220. 'Pyongyang' => array('latitude' => 39.0194444, 'longitude' => 125.7547222),
  221. 'Quito' => array('latitude' => -0.2166667, 'longitude' => -78.5),
  222. 'Rabat' => array('latitude' => 34.0252778, 'longitude' => -6.8361111),
  223. 'Reykjavik' => array('latitude' => 64.15, 'longitude' => -21.95),
  224. 'Riga' => array('latitude' => 56.95, 'longitude' => 24.1),
  225. 'Rio de Janero' => array('latitude' => -22.9, 'longitude' => -43.2333333),
  226. 'Road Town' => array('latitude' => 18.4166667, 'longitude' => -64.6166667),
  227. 'Rome' => array('latitude' => 41.9, 'longitude' => 12.4833333),
  228. 'Roseau' => array('latitude' => 15.3, 'longitude' => -61.4),
  229. 'Rotterdam' => array('latitude' => 51.9166667, 'longitude' => 4.5),
  230. 'Salvador' => array('latitude' => -12.9833333, 'longitude' => -38.5166667),
  231. 'San José' => array('latitude' => 9.9333333, 'longitude' => -84.0833333),
  232. 'San Juan' => array('latitude' => 18.46833, 'longitude' => -66.10611),
  233. 'San Marino' => array('latitude' => 43.5333333, 'longitude' => 12.9666667),
  234. 'San Salvador' => array('latitude' => 13.7086111, 'longitude' => -89.2030556),
  235. 'Sanaá' => array('latitude' => 15.3547222, 'longitude' => 44.2066667),
  236. 'Santa Cruz' => array('latitude' => -17.8, 'longitude' => -63.1666667),
  237. 'Santiago' => array('latitude' => -33.45, 'longitude' => -70.6666667),
  238. 'Santo Domingo' => array('latitude' => 18.4666667, 'longitude' => -69.9),
  239. 'Sao Paulo' => array('latitude' => -23.5333333, 'longitude' => -46.6166667),
  240. 'Sarajevo' => array('latitude' => 43.85, 'longitude' => 18.3833333),
  241. 'Seoul' => array('latitude' => 37.5663889, 'longitude' => 126.9997222),
  242. 'Shanghai' => array('latitude' => 31.2222222, 'longitude' => 121.4580556),
  243. 'Sydney' => array('latitude' => -33.8833333, 'longitude' => 151.2166667),
  244. 'Singapore' => array('latitude' => 1.2930556, 'longitude' => 103.8558333),
  245. 'Skopje' => array('latitude' => 42, 'longitude' => 21.4333333),
  246. 'Sofia' => array('latitude' => 42.6833333, 'longitude' => 23.3166667),
  247. 'St. George´s' => array('latitude' => 12.05, 'longitude' => -61.75),
  248. 'St. John´s' => array('latitude' => 17.1166667, 'longitude' => -61.85),
  249. 'Stanley' => array('latitude' => -51.7, 'longitude' => -57.85),
  250. 'Stockholm' => array('latitude' => 59.3333333, 'longitude' => 18.05),
  251. 'Suva' => array('latitude' => -18.1333333, 'longitude' => 178.4166667),
  252. 'Taipei' => array('latitude' => 25.0166667, 'longitude' => 121.45),
  253. 'Tallinn' => array('latitude' => 59.4338889, 'longitude' => 24.7280556),
  254. 'Tashkent' => array('latitude' => 41.3166667, 'longitude' => 69.25),
  255. 'Tbilisi' => array('latitude' => 41.725, 'longitude' => 44.7908333),
  256. 'Tegucigalpa' => array('latitude' => 14.1, 'longitude' => -87.2166667),
  257. 'Tehran' => array('latitude' => 35.6719444, 'longitude' => 51.4244444),
  258. 'The Hague' => array('latitude' => 52.0833333, 'longitude' => 4.3),
  259. 'Thimphu' => array('latitude' => 27.4833333, 'longitude' => 89.6),
  260. 'Tirana' => array('latitude' => 41.3275, 'longitude' => 19.8188889),
  261. 'Tiraspol' => array('latitude' => 46.8402778, 'longitude' => 29.6433333),
  262. 'Tokyo' => array('latitude' => 35.685, 'longitude' => 139.7513889),
  263. 'Toronto' => array('latitude' => 43.6666667, 'longitude' => -79.4166667),
  264. 'Tórshavn' => array('latitude' => 62.0166667, 'longitude' => -6.7666667),
  265. 'Tripoli' => array('latitude' => 32.8925, 'longitude' => 13.18),
  266. 'Tunis' => array('latitude' => 36.8027778, 'longitude' => 10.1797222),
  267. 'Ulaanbaatar' => array('latitude' => 47.9166667, 'longitude' => 106.9166667),
  268. 'Vaduz' => array('latitude' => 47.1333333, 'longitude' => 9.5166667),
  269. 'Valletta' => array('latitude' => 35.8997222, 'longitude' => 14.5147222),
  270. 'Valparaiso' => array('latitude' => -33.0477778, 'longitude' => -71.6011111),
  271. 'Vancouver' => array('latitude' => 49.25, 'longitude' => -123.1333333),
  272. 'Vatican City' => array('latitude' => 41.9, 'longitude' => 12.4833333),
  273. 'Victoria' => array('latitude' => -4.6166667, 'longitude' => 55.45),
  274. 'Vienna' => array('latitude' => 48.2, 'longitude' => 16.3666667),
  275. 'Vientaine' => array('latitude' => 17.9666667, 'longitude' => 102.6),
  276. 'Vilnius' => array('latitude' => 54.6833333, 'longitude' => 25.3166667),
  277. 'Warsaw' => array('latitude' => 52.25, 'longitude' => 21),
  278. 'Washington dc' => array('latitude' => 38.895, 'longitude' => -77.03667),
  279. 'Wellington' => array('latitude' => -41.3, 'longitude' => 174.7833333),
  280. 'Willemstad' => array('latitude' => 12.1, 'longitude' => -68.9166667),
  281. 'Windhoek' => array('latitude' => -22.57, 'longitude' => 17.0836111),
  282. 'Yamoussoukro' => array('latitude' => 6.8166667, 'longitude' => -5.2833333),
  283. 'Yaoundé' => array('latitude' => 3.8666667, 'longitude' => 11.5166667),
  284. 'Yerevan' => array('latitude' => 40.1811111, 'longitude' => 44.5136111),
  285. 'Zürich' => array('latitude' => 47.3666667, 'longitude' => 8.55),
  286. 'Zagreb' => array('latitude' => 45.8, 'longitude' => 16)
  287. );
  288. /**
  289. * Returns the location from the selected city
  290. *
  291. * @param string $city City to get location for
  292. * @param string $horizon Horizon to use :
  293. * default: effective
  294. * others are civil, nautic, astronomic
  295. * @return array
  296. * @throws Zend_Date_Exception When city is unknown
  297. */
  298. public static function City($city, $horizon = false)
  299. {
  300. foreach (self::$cities as $key => $value) {
  301. if (strtolower($key) === strtolower($city)) {
  302. $return = $value;
  303. $return['horizon'] = $horizon;
  304. return $return;
  305. }
  306. }
  307. #require_once 'Zend/Date/Exception.php';
  308. throw new Zend_Date_Exception('unknown city');
  309. }
  310. /**
  311. * Return a list with all known cities
  312. *
  313. * @return array
  314. */
  315. public static function getCityList()
  316. {
  317. return array_keys(self::$cities);
  318. }
  319. }