Area.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  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_Measure
  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. * Implement needed classes
  23. */
  24. #require_once 'Zend/Measure/Abstract.php';
  25. #require_once 'Zend/Locale.php';
  26. /**
  27. * Class for handling area conversions
  28. *
  29. * @category Zend
  30. * @package Zend_Measure
  31. * @subpackage Zend_Measure_Area
  32. * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  33. * @license http://framework.zend.com/license/new-bsd New BSD License
  34. */
  35. class Zend_Measure_Area extends Zend_Measure_Abstract
  36. {
  37. const STANDARD = 'SQUARE_METER';
  38. const ACRE = 'ACRE';
  39. const ACRE_COMMERCIAL = 'ACRE_COMMERCIAL';
  40. const ACRE_SURVEY = 'ACRE_SURVEY';
  41. const ACRE_IRELAND = 'ACRE_IRELAND';
  42. const ARE = 'ARE';
  43. const ARPENT = 'ARPENT';
  44. const BARN = 'BARN';
  45. const BOVATE = 'BOVATE';
  46. const BUNDER = 'BUNDER';
  47. const CABALLERIA = 'CABALLERIA';
  48. const CABALLERIA_AMERICA = 'CABALLERIA_AMERICA';
  49. const CABALLERIA_CUBA = 'CABALLERIA_CUBA';
  50. const CARREAU = 'CARREAU';
  51. const CARUCATE = 'CARUCATE';
  52. const CAWNEY = 'CAWNEY';
  53. const CENTIARE = 'CENTIARE';
  54. const CONG = 'CONG';
  55. const COVER = 'COVER';
  56. const CUERDA = 'CUERDA';
  57. const DEKARE = 'DEKARE';
  58. const DESSIATINA = 'DESSIATINA';
  59. const DHUR = 'DHUR';
  60. const DUNUM = 'DUNUM';
  61. const DUNHAM = 'DUNHAM';
  62. const FALL_SCOTS = 'FALL_SCOTS';
  63. const FALL = 'FALL';
  64. const FANEGA = 'FANEGA';
  65. const FARTHINGDALE = 'FARTHINGDALE';
  66. const HACIENDA = 'HACIENDA';
  67. const HECTARE = 'HECTARE';
  68. const HIDE = 'HIDE';
  69. const HOMESTEAD = 'HOMESTEAD';
  70. const HUNDRED = 'HUNDRED';
  71. const JERIB = 'JERIB';
  72. const JITRO = 'JITRO';
  73. const JOCH = 'JOCH';
  74. const JUTRO = 'JUTRO';
  75. const JO = 'JO';
  76. const KAPPLAND = 'KAPPLAND';
  77. const KATTHA = 'KATTHA';
  78. const LABOR = 'LABOR';
  79. const LEGUA = 'LEGUA';
  80. const MANZANA_COSTA_RICA = 'MANZANA_COSTA_RICA';
  81. const MANZANA = 'MANZANA';
  82. const MORGEN = 'MORGEN';
  83. const MORGEN_AFRICA = 'MORGEN_AFRICA';
  84. const MU = 'MU';
  85. const NGARN = 'NGARN';
  86. const NOOK = 'NOOK';
  87. const OXGANG = 'OXGANG';
  88. const PERCH = 'PERCH';
  89. const PERCHE = 'PERCHE';
  90. const PING = 'PING';
  91. const PYONG = 'PYONG';
  92. const RAI = 'RAI';
  93. const ROOD = 'ROOD';
  94. const SECTION = 'SECTION';
  95. const SHED = 'SHED';
  96. const SITIO = 'SITIO';
  97. const SQUARE = 'SQUARE';
  98. const SQUARE_ANGSTROM = 'SQUARE_ANGSTROM';
  99. const SQUARE_ASTRONOMICAL_UNIT = 'SQUARE_ASTRONOMICAL_UNIT';
  100. const SQUARE_ATTOMETER = 'SQUARE_ATTOMETER';
  101. const SQUARE_BICRON = 'SQUARE_BICRON';
  102. const SQUARE_CENTIMETER = 'SQUARE_CENTIMETER';
  103. const SQUARE_CHAIN = 'SQUARE_CHAIN';
  104. const SQUARE_CHAIN_ENGINEER = 'SQUARE_CHAIN_ENGINEER';
  105. const SQUARE_CITY_BLOCK_US_EAST = 'SQUARE_CITY_BLOCK_US_EAST';
  106. const SQUARE_CITY_BLOCK_US_WEST = 'SQUARE_CITY_BLOCK_US_WEST';
  107. const SQUARE_CITY_BLOCK_US_SOUTH = 'SQUARE_CITY_BLOCK_US_SOUTH';
  108. const SQUARE_CUBIT = 'SQUARE_CUBIT';
  109. const SQUARE_DECIMETER = 'SQUARE_DECIMETER';
  110. const SQUARE_DEKAMETER = 'SQUARE_DEKAMETER';
  111. const SQUARE_EXAMETER = 'SQUARE_EXAMETER';
  112. const SQUARE_FATHOM = 'SQUARE_FATHOM';
  113. const SQUARE_FEMTOMETER = 'SQUARE_FEMTOMETER';
  114. const SQUARE_FERMI = 'SQUARE_FERMI';
  115. const SQUARE_FOOT = 'SQUARE_FOOT';
  116. const SQUARE_FOOT_SURVEY = 'SQUARE_FOOT_SURVEY';
  117. const SQUARE_FURLONG = 'SQUARE_FURLONG';
  118. const SQUARE_GIGAMETER = 'SQUARE_GIGAMETER';
  119. const SQUARE_HECTOMETER = 'SQUARE_HECTOMETER';
  120. const SQUARE_INCH = 'SQUARE_INCH';
  121. const SQUARE_INCH_SURVEY = 'SQUARE_INCH_SURVEY';
  122. const SQUARE_KILOMETER = 'SQUARE_KILOMETER';
  123. const SQUARE_LEAGUE_NAUTIC = 'SQUARE_LEAGUE_NAUTIC';
  124. const SQUARE_LEAGUE = 'SQUARE_LEAGUE';
  125. const SQUARE_LIGHT_YEAR = 'SQUARE_LIGHT_YEAR';
  126. const SQUARE_LINK = 'SQUARE_LINK';
  127. const SQUARE_LINK_ENGINEER = 'SQUARE_LINK_ENGINEER';
  128. const SQUARE_MEGAMETER = 'SQUARE_MEGAMETER';
  129. const SQUARE_METER = 'SQUARE_METER';
  130. const SQUARE_MICROINCH = 'SQUARE_MICROINCH';
  131. const SQUARE_MICROMETER = 'SQUARE_MICROMETER';
  132. const SQUARE_MICROMICRON = 'SQUARE_MICROMICRON';
  133. const SQUARE_MICRON = 'SQUARE_MICRON';
  134. const SQUARE_MIL = 'SQUARE_MIL';
  135. const SQUARE_MILE = 'SQUARE_MILE';
  136. const SQUARE_MILE_NAUTIC = 'SQUARE_MILE_NAUTIC';
  137. const SQUARE_MILE_SURVEY = 'SQUARE_MILE_SURVEY';
  138. const SQUARE_MILLIMETER = 'SQUARE_MILLIMETER';
  139. const SQUARE_MILLIMICRON = 'SQUARE_MILLIMICRON';
  140. const SQUARE_MYRIAMETER = 'SQUARE_MYRIAMETER';
  141. const SQUARE_NANOMETER = 'SQUARE_NANOMETER';
  142. const SQUARE_PARIS_FOOT = 'SQUARE_PARIS_FOOT';
  143. const SQUARE_PARSEC = 'SQUARE_PARSEC';
  144. const SQUARE_PERCH = 'SQUARE_PERCH';
  145. const SQUARE_PERCHE = 'SQUARE_PERCHE';
  146. const SQUARE_PETAMETER = 'SQUARE_PETAMETER';
  147. const SQUARE_PICOMETER = 'SQUARE_PICOMETER';
  148. const SQUARE_ROD = 'SQUARE_ROD';
  149. const SQUARE_TENTHMETER = 'SQUARE_TENTHMETER';
  150. const SQUARE_TERAMETER = 'SQUARE_TERAMETER';
  151. const SQUARE_THOU = 'SQUARE_THOU';
  152. const SQUARE_VARA = 'SQUARE_VARA';
  153. const SQUARE_VARA_TEXAS = 'SQUARE_VARA_TEXAS';
  154. const SQUARE_YARD = 'SQUARE_YARD';
  155. const SQUARE_YARD_SURVEY = 'SQUARE_YARD_SURVEY';
  156. const SQUARE_YOCTOMETER = 'SQUARE_YOCTOMETER';
  157. const SQUARE_YOTTAMETER = 'SQUARE_YOTTAMETER';
  158. const STANG = 'STANG';
  159. const STREMMA = 'STREMMA';
  160. const TAREA = 'TAREA';
  161. const TATAMI = 'TATAMI';
  162. const TONDE_LAND = 'TONDE_LAND';
  163. const TOWNSHIP = 'TOWNSHIP';
  164. const TSUBO = 'TSUBO';
  165. const TUNNLAND = 'TUNNLAND';
  166. const YARD = 'YARD';
  167. const VIRGATE = 'VIRGATE';
  168. /**
  169. * Calculations for all area units
  170. *
  171. * @var array
  172. */
  173. protected $_units = array(
  174. 'ACRE' => array('4046.856422', 'A'),
  175. 'ACRE_COMMERCIAL' => array('3344.50944', 'A'),
  176. 'ACRE_SURVEY' => array('4046.872627', 'A'),
  177. 'ACRE_IRELAND' => array('6555', 'A'),
  178. 'ARE' => array('100', 'a'),
  179. 'ARPENT' => array('3418.89', 'arpent'),
  180. 'BARN' => array('1e-28', 'b'),
  181. 'BOVATE' => array('60000', 'bovate'),
  182. 'BUNDER' => array('10000', 'bunder'),
  183. 'CABALLERIA' => array('400000', 'caballeria'),
  184. 'CABALLERIA_AMERICA' => array('450000', 'caballeria'),
  185. 'CABALLERIA_CUBA' => array('134200', 'caballeria'),
  186. 'CARREAU' => array('12900', 'carreau'),
  187. 'CARUCATE' => array('486000', 'carucate'),
  188. 'CAWNEY' => array('5400', 'cawney'),
  189. 'CENTIARE' => array('1', 'ca'),
  190. 'CONG' => array('1000', 'cong'),
  191. 'COVER' => array('2698', 'cover'),
  192. 'CUERDA' => array('3930', 'cda'),
  193. 'DEKARE' => array('1000', 'dekare'),
  194. 'DESSIATINA' => array('10925', 'dessiantina'),
  195. 'DHUR' => array('16.929', 'dhur'),
  196. 'DUNUM' => array('1000', 'dunum'),
  197. 'DUNHAM' => array('1000', 'dunham'),
  198. 'FALL_SCOTS' => array('32.15', 'fall'),
  199. 'FALL' => array('47.03', 'fall'),
  200. 'FANEGA' => array('6430', 'fanega'),
  201. 'FARTHINGDALE' => array('1012', 'farthingdale'),
  202. 'HACIENDA' => array('89600000', 'hacienda'),
  203. 'HECTARE' => array('10000', 'ha'),
  204. 'HIDE' => array('486000', 'hide'),
  205. 'HOMESTEAD' => array('647500', 'homestead'),
  206. 'HUNDRED' => array('50000000', 'hundred'),
  207. 'JERIB' => array('2000', 'jerib'),
  208. 'JITRO' => array('5755', 'jitro'),
  209. 'JOCH' => array('5755', 'joch'),
  210. 'JUTRO' => array('5755', 'jutro'),
  211. 'JO' => array('1.62', 'jo'),
  212. 'KAPPLAND' => array('154.26', 'kappland'),
  213. 'KATTHA' => array('338', 'kattha'),
  214. 'LABOR' => array('716850', 'labor'),
  215. 'LEGUA' => array('17920000', 'legua'),
  216. 'MANZANA_COSTA_RICA' => array('6988.96', 'manzana'),
  217. 'MANZANA' => array('10000', 'manzana'),
  218. 'MORGEN' => array('2500', 'morgen'),
  219. 'MORGEN_AFRICA' => array('8567', 'morgen'),
  220. 'MU' => array(array('' => '10000', '/' => '15'), 'mu'),
  221. 'NGARN' => array('400', 'ngarn'),
  222. 'NOOK' => array('80937.128', 'nook'),
  223. 'OXGANG' => array('60000', 'oxgang'),
  224. 'PERCH' => array('25.29285264', 'perch'),
  225. 'PERCHE' => array('34.19', 'perche'),
  226. 'PING' => array('3.305', 'ping'),
  227. 'PYONG' => array('3.306', 'pyong'),
  228. 'RAI' => array('1600', 'rai'),
  229. 'ROOD' => array('1011.7141', 'rood'),
  230. 'SECTION' => array('2589998.5', 'sec'),
  231. 'SHED' => array('10e-52', 'shed'),
  232. 'SITIO' => array('18000000', 'sitio'),
  233. 'SQUARE' => array('9.290304', 'sq'),
  234. 'SQUARE_ANGSTROM' => array('1.0e-20', 'A²'),
  235. 'SQUARE_ASTRONOMICAL_UNIT' => array('2.2379523e+22', 'AU²'),
  236. 'SQUARE_ATTOMETER' => array('1.0e-36', 'am²'),
  237. 'SQUARE_BICRON' => array('1.0e-24', 'µµ²'),
  238. 'SQUARE_CENTIMETER' => array('0.0001', 'cm²'),
  239. 'SQUARE_CHAIN' => array('404.68726', 'ch²'),
  240. 'SQUARE_CHAIN_ENGINEER' => array('929.03412', 'ch²'),
  241. 'SQUARE_CITY_BLOCK_US_EAST' => array('4.97027584', 'sq block'),
  242. 'SQUARE_CITY_BLOCK_US_WEST' => array('17.141056', 'sq block'),
  243. 'SQUARE_CITY_BLOCK_US_SOUTH' => array('99.88110336', 'sq block'),
  244. 'SQUARE_CUBIT' => array('0.20903184', 'sq cubit'),
  245. 'SQUARE_DECIMETER' => array('0.01', 'dm²'),
  246. 'SQUARE_DEKAMETER' => array('100', 'dam²'),
  247. 'SQUARE_EXAMETER' => array('1.0e+36', 'Em²'),
  248. 'SQUARE_FATHOM' => array('3.3445228', 'fth²'),
  249. 'SQUARE_FEMTOMETER' => array('1.0e-30', 'fm²'),
  250. 'SQUARE_FERMI' => array('1.0e-30', 'f²'),
  251. 'SQUARE_FOOT' => array('0.09290304', 'ft²'),
  252. 'SQUARE_FOOT_SURVEY' => array('0.092903412', 'ft²'),
  253. 'SQUARE_FURLONG' => array('40468.726', 'fur²'),
  254. 'SQUARE_GIGAMETER' => array('1.0e+18', 'Gm²'),
  255. 'SQUARE_HECTOMETER' => array('10000', 'hm²'),
  256. 'SQUARE_INCH' => array(array('' => '0.09290304','/' => '144'), 'in²'),
  257. 'SQUARE_INCH_SURVEY' => array(array('' => '0.092903412','/' => '144'), 'in²'),
  258. 'SQUARE_KILOMETER' => array('1000000', 'km²'),
  259. 'SQUARE_LEAGUE_NAUTIC' => array('3.0869136e+07', 'sq league'),
  260. 'SQUARE_LEAGUE' => array('2.3309986e+07', 'sq league'),
  261. 'SQUARE_LIGHT_YEAR' => array('8.9505412e+31', 'ly²'),
  262. 'SQUARE_LINK' => array('0.040468726', 'sq link'),
  263. 'SQUARE_LINK_ENGINEER' => array('0.092903412', 'sq link'),
  264. 'SQUARE_MEGAMETER' => array('1.0e+12', 'Mm²'),
  265. 'SQUARE_METER' => array('1', 'm²'),
  266. 'SQUARE_MICROINCH' => array(array('' => '1.0e-6','*' => '6.4516e-10'), 'µin²'),
  267. 'SQUARE_MICROMETER' => array('1.0e-12', 'µm²'),
  268. 'SQUARE_MICROMICRON' => array('1.0e-24', 'µµ²'),
  269. 'SQUARE_MICRON' => array('1.0e-12', 'µ²'),
  270. 'SQUARE_MIL' => array('6.4516e-10', 'sq mil'),
  271. 'SQUARE_MILE' => array(array('' => '0.09290304','*' => '27878400'), 'mi²'),
  272. 'SQUARE_MILE_NAUTIC' => array('3429904', 'mi²'),
  273. 'SQUARE_MILE_SURVEY' => array('2589998.5', 'mi²'),
  274. 'SQUARE_MILLIMETER' => array('0.000001', 'mm²'),
  275. 'SQUARE_MILLIMICRON' => array('1.0e-18', 'mµ²'),
  276. 'SQUARE_MYRIAMETER' => array('1.0e+8', 'mym²'),
  277. 'SQUARE_NANOMETER' => array('1.0e-18', 'nm²'),
  278. 'SQUARE_PARIS_FOOT' => array('0.1055', 'sq paris foot'),
  279. 'SQUARE_PARSEC' => array('9.5214087e+32', 'pc²'),
  280. 'SQUARE_PERCH' => array('25.292954', 'sq perch'),
  281. 'SQUARE_PERCHE' => array('51.072', 'sq perche'),
  282. 'SQUARE_PETAMETER' => array('1.0e+30', 'Pm²'),
  283. 'SQUARE_PICOMETER' => array('1.0e-24', 'pm²'),
  284. 'SQUARE_ROD' => array(array('' => '0.092903412','*' => '272.25'), 'rd²'),
  285. 'SQUARE_TENTHMETER' => array('1.0e-20', 'sq tenth-meter'),
  286. 'SQUARE_TERAMETER' => array('1.0e+24', 'Tm²'),
  287. 'SQUARE_THOU' => array('6.4516e-10', 'sq thou'),
  288. 'SQUARE_VARA' => array('0.70258205', 'sq vara'),
  289. 'SQUARE_VARA_TEXAS' => array('0.71684731', 'sq vara'),
  290. 'SQUARE_YARD' => array('0.83612736', 'yd²'),
  291. 'SQUARE_YARD_SURVEY' => array('0.836130708', 'yd²'),
  292. 'SQUARE_YOCTOMETER' => array('1.0e-48', 'ym²'),
  293. 'SQUARE_YOTTAMETER' => array('1.0e+48', 'Ym²'),
  294. 'STANG' => array('2709', 'stang'),
  295. 'STREMMA' => array('1000', 'stremma'),
  296. 'TAREA' => array('628.8', 'tarea'),
  297. 'TATAMI' => array('1.62', 'tatami'),
  298. 'TONDE_LAND' => array('5516', 'tonde land'),
  299. 'TOWNSHIP' => array('93239945.3196288', 'twp'),
  300. 'TSUBO' => array('3.3058', 'tsubo'),
  301. 'TUNNLAND' => array('4936.4', 'tunnland'),
  302. 'YARD' => array('0.83612736', 'yd'),
  303. 'VIRGATE' => array('120000', 'virgate'),
  304. 'STANDARD' => 'SQUARE_METER'
  305. );
  306. }