{"versions":{"1.0.0":{"name":"cheap-ruler","version":"1.0.0","description":"A collection of fast approximations to common geographic measurements.","main":"index.js","dependencies":{},"devDependencies":{"benchmark":"^2.1.0","eslint":"^2.7.0","eslint-config-mourner":"^2.0.1","turf":"^2.0.2"},"scripts":{"test":"eslint index.js"},"eslintConfig":{"extends":"mourner"},"repository":{"type":"git","url":"git+https://github.com/mapbox/cheap-ruler.git"},"keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"homepage":"https://github.com/mapbox/cheap-ruler#readme","gitHead":"743c626e8fb22e632012816713555a53d27c0213","_id":"cheap-ruler@1.0.0","_shasum":"69d706fd87826121e719c6095ef107ae1564b671","_from":".","_npmVersion":"2.15.2","_nodeVersion":"5.10.1","_npmUser":{"name":"anonymous","email":"agafonkin@gmail.com"},"dist":{"shasum":"69d706fd87826121e719c6095ef107ae1564b671","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/cheap-ruler/-/cheap-ruler-1.0.0.tgz","integrity":"sha512-C334LtBpYen1zNR8kmfLIknOOK8HOnSHbKe0/M63wThoEf+rdgmfH0zzSMlXcLJ69TtjfYEdPZ6U+xDWZqUJtQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAwAs7PpoLjQtDVGNcvXFrfdw11HWEmg459JQnZOz4LdAiEA6WELu81AO0oNxlt0wz+QgDJ+MiId2OJIu0/39/W9x6Y="}]},"maintainers":[{"name":"anonymous","email":"agafonkin@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/cheap-ruler-1.0.0.tgz_1460738364629_0.539176830323413"},"directories":{},"contributors":[]},"1.1.0":{"name":"cheap-ruler","version":"1.1.0","description":"A collection of fast approximations to common geographic measurements.","main":"index.js","dependencies":{},"devDependencies":{"benchmark":"^2.1.0","eslint":"^2.7.0","eslint-config-mourner":"^2.0.1","tape":"^4.5.1","turf":"^2.0.2"},"scripts":{"pretest":"eslint index.js bench test/test.js","test":"tape test/test.js"},"eslintConfig":{"extends":"mourner"},"repository":{"type":"git","url":"git+https://github.com/mapbox/cheap-ruler.git"},"keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"homepage":"https://github.com/mapbox/cheap-ruler#readme","gitHead":"41f9fa9a0ca8474431f34a237d02300533f4d83a","_id":"cheap-ruler@1.1.0","_shasum":"381eb10da22de9fc44cc9bfcb13708804a5ba093","_from":".","_npmVersion":"2.15.2","_nodeVersion":"5.10.1","_npmUser":{"name":"anonymous","email":"agafonkin@gmail.com"},"dist":{"shasum":"381eb10da22de9fc44cc9bfcb13708804a5ba093","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/cheap-ruler/-/cheap-ruler-1.1.0.tgz","integrity":"sha512-ifZYFMivoXRIGAWGYjsDH0KTd6otksd0LAZ5ALe2T3M9hkL6yMKBbPgt+scCjDtu4UgD8Nn1RCmqO8XaWD88Ag==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpa4C+Yg74zC4+04Atdi57MUUlPkyxoWzPrbQ7149GzgIgEJSv8+iH1ccvZhyJUCeSL24DM7u9VW9UHY0kATZR/Lw="}]},"maintainers":[{"name":"anonymous","email":"agafonkin@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/cheap-ruler-1.1.0.tgz_1461264112406_0.7527988420333713"},"directories":{},"contributors":[]},"1.2.0":{"name":"cheap-ruler","version":"1.2.0","description":"A collection of fast approximations to common geographic measurements.","main":"index.js","dependencies":{},"devDependencies":{"benchmark":"^2.1.0","browserify":"^13.0.0","eslint":"^2.7.0","eslint-config-mourner":"^2.0.1","tape":"^4.5.1","turf":"^2.0.2"},"scripts":{"pretest":"eslint index.js bench test/test.js","test":"tape test/test.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","prepublish":"npm run build"},"eslintConfig":{"extends":"mourner"},"repository":{"type":"git","url":"git+https://github.com/mapbox/cheap-ruler.git"},"keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"homepage":"https://github.com/mapbox/cheap-ruler#readme","gitHead":"e2e846d6d5915e537059c89e2a2c957d119e81b4","_id":"cheap-ruler@1.2.0","_shasum":"718845652f744d068c1de842253cc4faca5a3f0f","_from":".","_npmVersion":"2.15.2","_nodeVersion":"5.10.1","_npmUser":{"name":"anonymous","email":"agafonkin@gmail.com"},"dist":{"shasum":"718845652f744d068c1de842253cc4faca5a3f0f","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/cheap-ruler/-/cheap-ruler-1.2.0.tgz","integrity":"sha512-+DCEvfcyanm4qCvnSs3KRRGVr5QNrbUbrWMFbwkyVq9bOlrZ/jl1s+AWa0TtJkp87rd1i4ifAl4HM/EgUU/UlQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCBztU+RDpjmUfSrWGTDh57htPmWTMaTjls10Gz1TUZJwIgVlzph8oGZ7hJrrMKb6BGaoTkpWBLDdB/kZzUgG3g/Z0="}]},"maintainers":[{"name":"anonymous","email":"agafonkin@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/cheap-ruler-1.2.0.tgz_1461332093079_0.0784096559509635"},"directories":{},"contributors":[]},"1.3.0":{"name":"cheap-ruler","version":"1.3.0","description":"A collection of fast approximations to common geographic measurements.","main":"index.js","dependencies":{},"devDependencies":{"benchmark":"^2.1.0","browserify":"^13.0.0","eslint":"^2.7.0","eslint-config-mourner":"^2.0.1","tape":"^4.5.1","turf":"^2.0.2"},"scripts":{"pretest":"eslint index.js bench test/test.js","test":"tape test/test.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","prepublish":"npm run build"},"eslintConfig":{"extends":"mourner"},"repository":{"type":"git","url":"git+https://github.com/mapbox/cheap-ruler.git"},"keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"homepage":"https://github.com/mapbox/cheap-ruler#readme","gitHead":"f82e2938299badcd52d3d71970f3593ad648bbae","_id":"cheap-ruler@1.3.0","_shasum":"eabf9352dc94d4c7c9788100cf26885c86b9ee97","_from":".","_npmVersion":"2.15.2","_nodeVersion":"5.10.1","_npmUser":{"name":"anonymous","email":"agafonkin@gmail.com"},"dist":{"shasum":"eabf9352dc94d4c7c9788100cf26885c86b9ee97","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/cheap-ruler/-/cheap-ruler-1.3.0.tgz","integrity":"sha512-kEemxCjPOaGeKLk47KKcfO4QYlNEYh4Y0S4nCztZnhgwKAM9G5QadpJLSkb4B9Y+t67HmOi1eeVNLVOhs7K5YA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfvoEcuOBe7h19KErjFu+y9M7oUFEO+HawV+ra2A2E1wIgIrzZVOs1ptan/ReAvUaGhU+joDASv9uVU0Ja542mgpU="}]},"maintainers":[{"name":"anonymous","email":"agafonkin@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/cheap-ruler-1.3.0.tgz_1461338637312_0.9139232223387808"},"directories":{},"contributors":[]},"2.0.0":{"name":"cheap-ruler","version":"2.0.0","description":"A collection of fast approximations to common geographic measurements.","main":"index.js","dependencies":{},"devDependencies":{"benchmark":"^2.1.0","browserify":"^13.0.0","eslint":"^2.7.0","eslint-config-mourner":"^2.0.1","tape":"^4.5.1","turf":"^2.0.2"},"scripts":{"pretest":"eslint index.js bench test/test.js","test":"tape test/test.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","prepublish":"npm run build"},"eslintConfig":{"extends":"mourner"},"repository":{"type":"git","url":"git+https://github.com/mapbox/cheap-ruler.git"},"keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"homepage":"https://github.com/mapbox/cheap-ruler#readme","gitHead":"a50c5fd59736149b2b4d151ce45ee60ea53bd7b1","_id":"cheap-ruler@2.0.0","_shasum":"752de9f0267a3aa5be36f370aa2ee5c8f6942847","_from":".","_npmVersion":"2.15.2","_nodeVersion":"5.10.1","_npmUser":{"name":"anonymous","email":"agafonkin@gmail.com"},"dist":{"shasum":"752de9f0267a3aa5be36f370aa2ee5c8f6942847","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/cheap-ruler/-/cheap-ruler-2.0.0.tgz","integrity":"sha512-yVUMV0P57T0/iP7UNWQ5SC0aAEpFxzneICGwluKk2Mf9Dlex3rHogv7TEbEfPYMBIrAzfw6P70DBzSyptZb5PQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA903R2pjddrEBZ2sI6ynbIj8mB9ZpjjhiIHB7Bgjid0AiBe0cwuHZvt+U1gwB7/vtGWX4EwIoMW+/o33rBnKNd14A=="}]},"maintainers":[{"name":"anonymous","email":"agafonkin@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/cheap-ruler-2.0.0.tgz_1461355384955_0.8669803042430431"},"directories":{},"contributors":[]},"2.1.0":{"name":"cheap-ruler","version":"2.1.0","description":"A collection of fast approximations to common geographic measurements.","main":"index.js","dependencies":{},"devDependencies":{"benchmark":"^2.1.0","browserify":"^13.0.0","eslint":"^2.7.0","eslint-config-mourner":"^2.0.1","istanbul":"^0.4.3","tape":"^4.5.1","turf":"^2.0.2"},"scripts":{"pretest":"eslint index.js bench test/test.js","test":"tape test/test.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","prepublish":"npm run build","cov":"istanbul cover tape test/test.js"},"eslintConfig":{"extends":"mourner"},"repository":{"type":"git","url":"git+https://github.com/mapbox/cheap-ruler.git"},"keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"homepage":"https://github.com/mapbox/cheap-ruler#readme","gitHead":"3072fd0d849d6239fdaf08ae204ad916758dbbef","_id":"cheap-ruler@2.1.0","_shasum":"d554104929a845a61030452ee862658b80a8f916","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.11.0","_npmUser":{"name":"anonymous","email":"agafonkin@gmail.com"},"dist":{"shasum":"d554104929a845a61030452ee862658b80a8f916","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/cheap-ruler/-/cheap-ruler-2.1.0.tgz","integrity":"sha512-cdeA2XPJ39xqOd98TOFO5nKYdMuOjTF9+3qodAoWQ6lSm6IxgYfeyfNv6RAbuxaqsmXL88w6eyl2b4wxyI9S5g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHj54UEBEMCGlFop0VsOMoXHGRaKWYk6FkY1s3hJ9WN/AiASp4H9Wo3+iCwPo9YnJ9SHIaSSL1NV01ppQVagiRkvnQ=="}]},"maintainers":[{"name":"anonymous","email":"agafonkin@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/cheap-ruler-2.1.0.tgz_1461504144283_0.5099698482081294"},"directories":{},"contributors":[]},"2.2.0":{"name":"cheap-ruler","version":"2.2.0","description":"A collection of fast approximations to common geographic measurements.","main":"index.js","dependencies":{},"devDependencies":{"benchmark":"^2.1.0","browserify":"^13.0.0","eslint":"^2.7.0","eslint-config-mourner":"^2.0.1","istanbul":"^0.4.3","tape":"^4.5.1","turf":"^2.0.2"},"scripts":{"pretest":"eslint index.js bench test/test.js","test":"tape test/test.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","prepublish":"npm run build","cov":"istanbul cover tape test/test.js"},"eslintConfig":{"extends":"mourner"},"repository":{"type":"git","url":"git+https://github.com/mapbox/cheap-ruler.git"},"keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"homepage":"https://github.com/mapbox/cheap-ruler#readme","gitHead":"04ecd03e10bc209b50d058e2e4da7db3e97ed0b3","_id":"cheap-ruler@2.2.0","_shasum":"c3b8462e8d523534479dffac4354982c1e35179a","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.11.0","_npmUser":{"name":"anonymous","email":"agafonkin@gmail.com"},"dist":{"shasum":"c3b8462e8d523534479dffac4354982c1e35179a","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/cheap-ruler/-/cheap-ruler-2.2.0.tgz","integrity":"sha512-2jsd1UZbcXm1FDApHrvkcmkW5cgnKAoEBLXUwDj+kQeFJwAkrJSyp6w6nZccFtxpmfyuHz2cxo/0UW+sN134oQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEvHOaVPJO3YW4Cjo6w/FPWIh8XgnqdDsyviJ81nv4mBAiEAslfYb3Je/NKBvgRLRMtDfwnGyLnDYpuac/Cq4Pgs6Lo="}]},"maintainers":[{"name":"anonymous","email":"agafonkin@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/cheap-ruler-2.2.0.tgz_1461588193077_0.6620675823651254"},"directories":{},"contributors":[]},"2.3.0":{"name":"cheap-ruler","version":"2.3.0","description":"A collection of fast approximations to common geographic measurements.","main":"index.js","dependencies":{},"devDependencies":{"benchmark":"^2.1.0","browserify":"^13.0.0","eslint":"^2.7.0","eslint-config-mourner":"^2.0.1","istanbul":"^0.4.3","tape":"^4.5.1","turf":"^2.0.2"},"scripts":{"pretest":"eslint index.js bench test/test.js","test":"tape test/test.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","prepublish":"npm run build","cov":"istanbul cover tape test/test.js"},"eslintConfig":{"extends":"mourner"},"repository":{"type":"git","url":"git+https://github.com/mapbox/cheap-ruler.git"},"keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"homepage":"https://github.com/mapbox/cheap-ruler#readme","gitHead":"6ccb89601e6836bf7c3e2c26c906a0cc816f697e","_id":"cheap-ruler@2.3.0","_shasum":"491e364126b9b775305a0a72e43fa805d08cfc96","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.11.0","_npmUser":{"name":"anonymous","email":"agafonkin@gmail.com"},"dist":{"shasum":"491e364126b9b775305a0a72e43fa805d08cfc96","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/cheap-ruler/-/cheap-ruler-2.3.0.tgz","integrity":"sha512-7W89y3Kag0QGhlEbl+jCZ3BRjMAlU9XOfavBYYnE352B1OaZpKuncwiEv3f2winqhR/BWSDNW0hgoZH0+8VZYg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICW3nSVYs/mLiFT9GmNcYaPXhuUu8GB9Zb3h5O7RxNdLAiAX20P9cJ/NTIwLdAidRNk+y2FV5fGUeoa2cj/m6zKeZA=="}]},"maintainers":[{"name":"anonymous","email":"agafonkin@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/cheap-ruler-2.3.0.tgz_1461680955134_0.8520950046367943"},"directories":{},"contributors":[]},"2.4.0":{"name":"cheap-ruler","version":"2.4.0","description":"A collection of fast approximations to common geographic measurements.","main":"index.js","dependencies":{},"devDependencies":{"benchmark":"^2.1.0","browserify":"^13.0.0","eslint":"^2.7.0","eslint-config-mourner":"^2.0.1","istanbul":"^0.4.3","tape":"^4.5.1","turf":"^2.0.2"},"scripts":{"pretest":"eslint index.js bench test/test.js","test":"tape test/test.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","prepublish":"npm run build","cov":"istanbul cover tape test/test.js"},"eslintConfig":{"extends":"mourner"},"repository":{"type":"git","url":"git+https://github.com/mapbox/cheap-ruler.git"},"keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"homepage":"https://github.com/mapbox/cheap-ruler#readme","gitHead":"14e7feb359f60c02e57f963a06277916db1c8aa3","_id":"cheap-ruler@2.4.0","_shasum":"2e647bef60a9cab79d829fa3bb5dcf20ebdec58d","_from":".","_npmVersion":"2.15.3","_nodeVersion":"6.0.0","_npmUser":{"name":"anonymous","email":"agafonkin@gmail.com"},"dist":{"shasum":"2e647bef60a9cab79d829fa3bb5dcf20ebdec58d","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/cheap-ruler/-/cheap-ruler-2.4.0.tgz","integrity":"sha512-AC1Fd3e6l31ejEEXR91UsGXTuQW0ebXkecg9p5USXUdWilE5BZSv8hErrmIpnmxKIIsbePxMw+aRkQTtCkPlWQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEkaNFfcJtCfqN3t8WPaheTwg74BllvYvExcHz8NF/XrAiEAmYQK5gCTtXQwsr2/8auigItRdj5KC9F8Qy+hf5lmKBc="}]},"maintainers":[{"name":"anonymous","email":"agafonkin@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/cheap-ruler-2.4.0.tgz_1462262010151_0.3629192088264972"},"directories":{},"contributors":[]},"2.4.1":{"name":"cheap-ruler","version":"2.4.1","description":"A collection of fast approximations to common geographic measurements.","main":"index.js","dependencies":{},"devDependencies":{"benchmark":"^2.1.0","browserify":"^13.0.0","eslint":"^2.7.0","eslint-config-mourner":"^2.0.1","istanbul":"^0.4.3","tape":"^4.5.1","turf":"^2.0.2"},"scripts":{"pretest":"eslint index.js bench test/test.js","test":"tape test/test.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","prepublish":"npm run build","cov":"istanbul cover tape test/test.js"},"eslintConfig":{"extends":"mourner"},"repository":{"type":"git","url":"git+https://github.com/mapbox/cheap-ruler.git"},"keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"homepage":"https://github.com/mapbox/cheap-ruler#readme","gitHead":"d756185fb152152cd7c6a01bd894c0de955ad8a3","_id":"cheap-ruler@2.4.1","_shasum":"67b55d2dec2df18d9043c15ca0968962f33b318d","_from":".","_npmVersion":"2.15.3","_nodeVersion":"6.0.0","_npmUser":{"name":"anonymous","email":"agafonkin@gmail.com"},"dist":{"shasum":"67b55d2dec2df18d9043c15ca0968962f33b318d","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/cheap-ruler/-/cheap-ruler-2.4.1.tgz","integrity":"sha512-ZHTZcBBU8JekGDrHKmpuIatKKKMjoalVkocd417l/9wGatMi8VsVKZLWOcP+sV7la6TDEEy1j3jackxUF2vlCw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFQ9zcnrkHIzu5TWYFHOGUL78yWfDFl6DhS2QobyHV0WAiEAmDUNibbIqMMKDnbfYtBS2/nBwjWFgRtatdg+mmKKKgM="}]},"maintainers":[{"name":"anonymous","email":"agafonkin@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/cheap-ruler-2.4.1.tgz_1462289211166_0.6377219369169325"},"directories":{},"contributors":[]},"2.5.0":{"name":"cheap-ruler","version":"2.5.0","description":"A collection of fast approximations to common geographic measurements.","main":"index.js","types":"index.d.ts","dependencies":{},"devDependencies":{"benchmark":"^2.1.3","browserify":"^14.1.0","eslint":"^3.17.0","eslint-config-mourner":"^2.0.1","istanbul":"^0.4.5","node-vincenty":"0.0.6","tape":"^4.6.3","@turf/turf":"^3.12.2","typescript":"^2.2.1"},"scripts":{"pretest":"eslint index.js bench test/*.js && npm run types","test":"tape test/test.js","types":"tsc test/types.ts && rm test/types.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","prepublish":"npm run build","cov":"istanbul cover tape test/test.js"},"eslintConfig":{"extends":"mourner"},"repository":{"type":"git","url":"git+https://github.com/mapbox/cheap-ruler.git"},"keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"homepage":"https://github.com/mapbox/cheap-ruler#readme","gitHead":"1f18ca017fa83679b72f46a4eaebf3a491428f37","_id":"cheap-ruler@2.5.0","_shasum":"776df3968090d9f36dfb34569fc6d7043b1a3aab","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.6.0","_npmUser":{"name":"anonymous","email":"agafonkin@gmail.com"},"dist":{"shasum":"776df3968090d9f36dfb34569fc6d7043b1a3aab","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/cheap-ruler/-/cheap-ruler-2.5.0.tgz","integrity":"sha512-L/us0rVIgtfId+1lvEGfE1Kljg9u4OCdJorysWC14H42yK6r9oSxjzIfyWtDA9n0OWKB8tzRp8bUjxHRecwn5g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGv4ZP91AIorZyeiaQv8urYzUZZmutg96HedXCDHF5roAiEA2/ceVzIHWbBQ+2eeuyv65AiCrAdYJyldI/hntxaUR/k="}]},"maintainers":[{"name":"anonymous","email":"aaronlidman@gmail.com"},{"name":"anonymous","email":"aarthy@mapbox.com"},{"name":"anonymous","email":"ajith@mapbox.com"},{"name":"anonymous","email":"alice@mapbox.com"},{"name":"anonymous","email":"alinapaz@gmail.com"},{"name":"anonymous","email":"ulsh@mapbox.com"},{"name":"anonymous","email":"amisha@mapbox.com"},{"name":"anonymous","email":"amyleewalton@gmail.com"},{"name":"anonymous","email":"vestibule@anandthakker.net"},{"name":"anonymous","email":"andreas.viglakis@gmail.com"},{"name":"anonymous","email":"ansis.brammanis@gmail.com"},{"name":"anonymous","email":"alex.parlato@mapbox.com"},{"name":"anonymous","email":"andrew@mapbox.com"},{"name":"anonymous","email":"aruna@mapbox.com"},{"name":"anonymous","email":"sanjay@mapbox.com"},{"name":"anonymous","email":"benjamin@mapbox.com"},{"name":"anonymous","email":"bryan@mapbox.com"},{"name":"anonymous","email":"bhargav.kowshik@gmail.com"},{"name":"anonymous","email":"brendan@mapbox.com"},{"name":"anonymous","email":"bharata+npm@mapbox.com"},{"name":"anonymous","email":"bobby@mapbox.com"},{"name":"anonymous","email":"camilla@mapbox.com"},{"name":"anonymous","email":"nadia.barbosa@mapbox.com"},{"name":"anonymous","email":"hello@chau-nguyen.de"},{"name":"anonymous","email":"chris.loer@mapbox.com"},{"name":"anonymous","email":"colleen.mcginnis@mapbox.com"},{"name":"anonymous","email":"daniel+npm@trvx.org"},{"name":"anonymous","email":"danpat@danpat.net"},{"name":"anonymous","email":"dan@mapbox.com"},{"name":"anonymous","email":"dana.sulit@mapbox.com"},{"name":"anonymous","email":"david.dave.clark@gmail.com"},{"name":"anonymous","email":"damon@mapbox.com"},{"name":"anonymous","email":"dthompson@gmail.com"},{"name":"anonymous","email":"emily@mapbox.com"},{"name":"anonymous","email":"dubois@mapbox.com"},{"name":"anonymous","email":"fischer@mapbox.com"},{"name":"anonymous","email":"spam@freenerd.de"},{"name":"anonymous","email":"sajjadkm@gmail.com"},{"name":"anonymous","email":"ghoshkaj@gmail.com"},{"name":"anonymous","email":"carol@mapbox.com"},{"name":"anonymous","email":"ian.villeda@gmail.com"},{"name":"anonymous","email":"ian@mapbox.com"},{"name":"anonymous","email":"nicholas.ingalls@gmail.com"},{"name":"anonymous","email":"siyu.song@gmail.com"},{"name":"anonymous","email":"hi@jacquestardie.org"},{"name":"anonymous","email":"john.firebaugh@gmail.com"},{"name":"anonymous","email":"jothirnadh@mapbox.com"},{"name":"anonymous","email":"jake@jakepruitt.com"},{"name":"anonymous","email":"kara.e.mahoney@gmail.com"},{"name":"anonymous","email":"kai@mapbox.com"},{"name":"anonymous","email":"kai@mapbox.com"},{"name":"anonymous","email":"karen@mapbox.com"},{"name":"anonymous","email":"karito@mapbox.com"},{"name":"anonymous","email":"decorah@mapbox.com"},{"name":"anonymous","email":"0o3ko0@gmail.com"},{"name":"anonymous","email":"mail@kkaefer.com"},{"name":"anonymous","email":"sam.kronick@mapbox.com"},{"name":"anonymous","email":"laurier@mapbox.com"},{"name":"anonymous","email":"l@pwd.io"},{"name":"anonymous","email":"lauren@mapbox.com"},{"name":"anonymous","email":"lily@mapbox.com"},{"name":"anonymous","email":"lindsay@mapbox.com"},{"name":"anonymous","email":"lucas@lucaswoj.com"},{"name":"anonymous","email":"me@lukasmartinelli.ch"},{"name":"anonymous","email":"alex@mapbox.com"},{"name":"anonymous","email":"lyzi@mapbox.com"},{"name":"anonymous","email":"emmanuel.sambale@gmail.com"},{"name":"anonymous","email":"manohar@mapbox.com"},{"name":"anonymous","email":"accounts@mapbox.com"},{"name":"anonymous","email":"sam@mapbox.com"},{"name":"anonymous","email":"matt@mapbox.com"},{"name":"anonymous","email":"matt@mattficke.com"},{"name":"anonymous","email":"mayaqgao@gmail.com"},{"name":"anonymous","email":"mcwhittemore@gmail.com"},{"name":"anonymous","email":"jeff@miccolis.net"},{"name":"anonymous","email":"miles.sackler@mapbox.com"},{"name":"anonymous","email":"moritz@mapbox.com"},{"name":"anonymous","email":"mollylloyd@gmail.com"},{"name":"anonymous","email":"morgan.herlocker@gmail.com"},{"name":"anonymous","email":"agafonkin@gmail.com"},{"name":"anonymous","email":"max@mapbox.com"},{"name":"anonymous","email":"krishna@mapbox.com"},{"name":"anonymous","email":"nat@mapbox.com"},{"name":"anonymous","email":"nick.cordella@mapbox.com"},{"name":"anonymous","email":"nicki@mapbox.com"},{"name":"anonymous","email":"oindrila.gupta92@gmail.com"},{"name":"anonymous","email":"michael.krasnyk@gmail.com"},{"name":"anonymous","email":"paul@mapbox.com"},{"name":"anonymous","email":"perrygeo@gmail.colm"},{"name":"anonymous","email":"arun.planemad@gmail.com"},{"name":"anonymous","email":"pratik@mapbox.com"},{"name":"anonymous","email":"ryan.clark.j@gmail.com"},{"name":"anonymous","email":"rod@wilhel.me"},{"name":"anonymous","email":"ruben@mapbox.com"},{"name":"anonymous","email":"r.ragupathy85@gmail.com"},{"name":"anonymous","email":"rsbaumann@gmail.com"},{"name":"anonymous","email":"abhishek@mapbox.com"},{"name":"anonymous","email":"saman@mapbox.com"},{"name":"anonymous","email":"sarah.kleinman@mapbox.com"},{"name":"anonymous","email":"tlee@mapbox.com"},{"name":"anonymous","email":"scothis@gmail.com"},{"name":"anonymous","email":"sean@mapbox.com"},{"name":"anonymous","email":"dane@mapbox.com"},{"name":"anonymous","email":"srividyabharadwaj26@gmail.com"},{"name":"anonymous","email":"tim.channell@gmail.com"},{"name":"anonymous","email":"patrick@mapbox.com"},{"name":"anonymous","email":"tom@macwright.org"},{"name":"anonymous","email":"tony.chen@mapbox.com"},{"name":"anonymous","email":"tristen.brown@gmail.com"},{"name":"anonymous","email":"ugo.vollmer@mapbox.com"},{"name":"anonymous","email":"vincent.sarago@mapbox.com"},{"name":"anonymous","email":"virginia@mapbox.com"},{"name":"anonymous","email":"will@mapbox.com"},{"name":"anonymous","email":"xiaowei@mapbox.com"},{"name":"anonymous","email":"young@mapbox.com"},{"name":"anonymous","email":"yunjie.li@mapbox.com"},{"name":"anonymous","email":"mully@mapbox.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/cheap-ruler-2.5.0.tgz_1488838792294_0.932068694382906"},"directories":{},"contributors":[]},"2.5.1":{"name":"cheap-ruler","version":"2.5.1","description":"A collection of fast approximations to common geographic measurements.","main":"index.js","jsdelivr":"cheap-ruler.js","unpkg":"cheap-ruler.js","types":"index.d.ts","dependencies":{},"devDependencies":{"@turf/turf":"^5.0.4","benchmark":"^2.1.4","browserify":"^14.5.0","eslint":"^4.12.0","eslint-config-mourner":"^2.0.3","node-vincenty":"0.0.6","nyc":"^11.3.0","tape":"^4.8.0","typescript":"^2.6.2","uglify-js":"^3.2.0"},"scripts":{"pretest":"eslint index.js bench test/*.js && npm run types","test":"tape test/test.js","types":"tsc test/types.ts && rm test/types.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","build-min":"browserify index.js -s cheapRuler | uglifyjs -c -m > cheap-ruler.min.js","prepare":"npm run build && npm run build-min","cov":"nyc tape test/test.js"},"files":["index.d.ts","cheap-ruler.js","cheap-ruler.min.js"],"eslintConfig":{"extends":"mourner"},"repository":{"type":"git","url":"git+https://github.com/mapbox/cheap-ruler.git"},"keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"homepage":"https://github.com/mapbox/cheap-ruler#readme","gitHead":"2ee298e50fd38ed280a8b515aa9660ed5ef4557e","_id":"cheap-ruler@2.5.1","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"anonymous","email":"agafonkin@gmail.com"},"dist":{"integrity":"sha512-5x22zeBDPIXdDDiqIsC8tkOY1HEBD6FCRCfsvgwNg9yelClCpvfNGk0L2MotxTDEL4aoXOUUgdm3rPOBSLF+jA==","shasum":"1c47ece27fc14bc95e817e16d49ceb5009a7e987","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/cheap-ruler/-/cheap-ruler-2.5.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAlD7RURf46qBwxRld7u9uQeL+SEyn3UNVLFTbCEZyrjAiALJEV++LT7UMCqIFHeZ6UhVtwoihUb8uU9Xo2x1ujNWQ=="}]},"maintainers":[{"email":"okorie.puryear@mapbox.com","name":"anonymous"},{"email":"b.jazzy.w@gmail.com","name":"anonymous"},{"email":"lucas@lucaswoj.com","name":"anonymous"},{"email":"anthony.agby@mapbox.com","name":"anonymous"},{"email":"tridip@mapbox.com","name":"anonymous"},{"email":"norchard24@gmail.com","name":"anonymous"},{"email":"msteigerwalt@gmail.com","name":"anonymous"},{"email":"saba.elhilo2@gmail.com","name":"anonymous"},{"email":"matt@mapbox.com","name":"anonymous"},{"email":"tapasweni@mapbox.com","name":"anonymous"},{"email":"hjudge@mapbox.com","name":"anonymous"},{"email":"scott.farley@mapbox.com","name":"anonymous"},{"email":"angel.kittiyachavalit@gmail.com","name":"anonymous"},{"email":"tmpsantos@gmail.com","name":"anonymous"},{"email":"lo_benichou@protonmail.com","name":"anonymous"},{"email":"jordan.kiley@mapbox.com","name":"anonymous"},{"email":"anjana.vakil@mapbox.com","name":"anonymous"},{"email":"antonio@mapbox.com","name":"anonymous"},{"email":"pablo.guardiola@mapbox.com","name":"anonymous"},{"email":"irwin@mapbox.com","name":"anonymous"},{"email":"paige.moody@mapbox.com","name":"anonymous"},{"email":"oormila@mapbox.com","name":"anonymous"},{"email":"fabian.guerra@gmail.com","name":"anonymous"},{"email":"jesse@rebounds.net","name":"anonymous"},{"email":"friedbunny@users.noreply.github.com","name":"anonymous"},{"email":"emily.chow@mapbox.com","name":"anonymous"},{"email":"joe.clark@mapbox.com","name":"anonymous"},{"email":"xianny@gmail.com","name":"anonymous"},{"email":"katherine.meng@mapbox.com","name":"anonymous"},{"email":"dave@mapbox.com","name":"anonymous"},{"email":"dave.prukop@mapbox.com","name":"anonymous"},{"email":"lizzie.gooding@mapbox.com","name":"anonymous"},{"email":"mark.misener@mapbox.com","name":"anonymous"},{"email":"nick.italiano@mapbox.com","name":"anonymous"},{"email":"tara.adiseshan@gmail.com","name":"anonymous"},{"email":"eli.fitch.prof+npm@gmail.com","name":"anonymous"},{"email":"nadia.barbosa@mapbox.com","name":"anonymous"},{"email":"cameron@mapbox.com","name":"anonymous"},{"email":"bruno@mapbox.com","name":"anonymous"},{"email":"langston.smith@mapbox.com","name":"anonymous"},{"email":"rafa@mapbox.com","name":"anonymous"},{"email":"mxn@1ec5.org","name":"anonymous"},{"email":"liz.shigetoshi@mapbox.com","name":"anonymous"},{"email":"hello@johnfurrow.com","name":"anonymous"},{"email":"andrea.delrio@mapbox.com","name":"anonymous"},{"email":"ali@mapbox.com","name":"anonymous"},{"email":"ann.millspaugh@gmail.com","name":"anonymous"},{"email":"hello@franka.tech","name":"anonymous"},{"email":"charlie@mapbox.com","name":"anonymous"},{"email":"julianne@mapbox.com","name":"anonymous"},{"email":"dthompson@gmail.com","name":"anonymous"},{"email":"eric.alessandrini@mapbox.com","name":"anonymous"},{"email":"jayana.charles@mapbox.com","name":"anonymous"},{"email":"christopher.cailleaux@gmail.com","name":"anonymous"},{"email":"poornima@mapbox.com","name":"anonymous"},{"email":"bersabel.tadesse@mapbox.com","name":"anonymous"},{"email":"mallorywood413@gmail.com","name":"anonymous"},{"email":"luis@mapbox.com","name":"anonymous"},{"email":"pilar@mapbox.com","name":"anonymous"},{"email":"galia@mapbox.com","name":"anonymous"},{"email":"matt.gosline@mapbox.com","name":"anonymous"},{"email":"kelly.young@mapbox.com","name":"anonymous"},{"email":"mikel@groundtruth.in","name":"anonymous"},{"email":"danpat@danpat.net","name":"anonymous"},{"email":"macro.shen@mapbox.com","name":"anonymous"},{"email":"asheemm@gmail.com","name":"anonymous"},{"email":"john.sylak-glassman@mapbox.com","name":"anonymous"},{"email":"aj@mapbox.com","name":"anonymous"},{"email":"devin.boyer@mapbox.com","name":"anonymous"},{"email":"andrey@mapbox.com","name":"anonymous"},{"email":"flippmoke@gmail.com","name":"anonymous"},{"email":"safonov.ilya@gmail.com","name":"anonymous"},{"email":"denis.koronchik@gmail.com","name":"anonymous"},{"email":"peterqliu@gmail.com","name":"anonymous"},{"email":"rasagy@mapbox.com","name":"anonymous"},{"email":"chethan@mapbox.com","name":"anonymous"},{"email":"upendra@mapbox.com","name":"anonymous"},{"email":"cesar@mapbox.com","name":"anonymous"},{"email":"pavel@mapbox.com","name":"anonymous"},{"email":"olivia.brundage@mapbox.com","name":"anonymous"},{"email":"aileen.s.rowan@gmail.com","name":"anonymous"},{"email":"richman@mapbox.com","name":"anonymous"},{"email":"danny@mapbox.com","name":"anonymous"},{"email":"eliane@mapbox.com","name":"anonymous"},{"email":"nikinfour@gmail.com","name":"anonymous"},{"email":"gokul.ganesan@mapbox.com","name":"anonymous"},{"email":"blannon@gmail.com","name":"anonymous"},{"email":"sean@mapbox.com","name":"anonymous"},{"email":"me@lukasmartinelli.ch","name":"anonymous"},{"email":"krishna@mapbox.com","name":"anonymous"},{"email":"lindsay@mapbox.com","name":"anonymous"},{"email":"vestibule@anandthakker.net","name":"anonymous"},{"email":"chris.loer@mapbox.com","name":"anonymous"},{"email":"0o3ko0@gmail.com","name":"anonymous"},{"email":"sam.kronick@mapbox.com","name":"anonymous"},{"email":"manohar@mapbox.com","name":"anonymous"},{"email":"alex.parlato@mapbox.com","name":"anonymous"},{"email":"bharata+npm@mapbox.com","name":"anonymous"},{"email":"aarthy@mapbox.com","name":"anonymous"},{"email":"dane@mapbox.com","name":"anonymous"},{"email":"dana.sulit@mapbox.com","name":"anonymous"},{"email":"emmanuel.sambale@gmail.com","name":"anonymous"},{"email":"miles.sackler@mapbox.com","name":"anonymous"},{"email":"agafonkin@gmail.com","name":"anonymous"},{"email":"hello@chau-nguyen.de","name":"anonymous"},{"email":"michael.krasnyk@gmail.com","name":"anonymous"},{"email":"r.ragupathy85@gmail.com","name":"anonymous"},{"email":"vincent.sarago@mapbox.com","name":"anonymous"},{"email":"tony.chen@mapbox.com","name":"anonymous"},{"email":"arun.planemad@gmail.com","name":"anonymous"},{"email":"patrick@mapbox.com","name":"anonymous"},{"email":"laurier@mapbox.com","name":"anonymous"},{"email":"alice@mapbox.com","name":"anonymous"},{"email":"ansis.brammanis@gmail.com","name":"anonymous"},{"email":"oindrila.gupta92@gmail.com","name":"anonymous"},{"email":"virginia@mapbox.com","name":"anonymous"},{"email":"karito@mapbox.com","name":"anonymous"},{"email":"srividyabharadwaj26@gmail.com","name":"anonymous"},{"email":"perry@mapbox.com","name":"anonymous"},{"email":"colleen.mcginnis@mapbox.com","name":"anonymous"},{"email":"nat@mapbox.com","name":"anonymous"},{"email":"nick.cordella@mapbox.com","name":"anonymous"},{"email":"benjamin@mapbox.com","name":"anonymous"},{"email":"fischer@mapbox.com","name":"anonymous"},{"email":"kai@mapbox.com","name":"anonymous"},{"email":"paul@mapbox.com","name":"anonymous"},{"email":"max@mapbox.com","name":"anonymous"},{"email":"abhishek@mapbox.com","name":"anonymous"},{"email":"jothirnadh@mapbox.com","name":"anonymous"},{"email":"ryan.baumann@mapbox.com","name":"anonymous"},{"email":"dan@mapbox.com","name":"anonymous"},{"email":"lily@mapbox.com","name":"anonymous"},{"email":"amisha@mapbox.com","name":"anonymous"},{"email":"kara.e.mahoney@gmail.com","name":"anonymous"},{"email":"bhargav.kowshik@gmail.com","name":"anonymous"},{"email":"alinapaz@gmail.com","name":"anonymous"},{"email":"damon@mapbox.com","name":"anonymous"},{"email":"lyzi@mapbox.com","name":"anonymous"},{"email":"spam@freenerd.de","name":"anonymous"},{"email":"carol@mapbox.com","name":"anonymous"},{"email":"camilla@mapbox.com","name":"anonymous"},{"email":"saman@mapbox.com","name":"anonymous"},{"email":"bryan@mapbox.com","name":"anonymous"},{"email":"daniel+npm@trvx.org","name":"anonymous"},{"email":"decorah@mapbox.com","name":"anonymous"},{"email":"pratik@mapbox.com","name":"anonymous"},{"email":"morgan.herlocker@gmail.com","name":"anonymous"},{"email":"hi@jacquestardie.org","name":"anonymous"},{"email":"mollylloyd@gmail.com","name":"anonymous"},{"email":"john.firebaugh@gmail.com","name":"anonymous"},{"email":"tim.channell@gmail.com","name":"anonymous"},{"email":"ruben@mapbox.com","name":"anonymous"},{"email":"mail@kkaefer.com","name":"anonymous"},{"email":"brendan@mapbox.com","name":"anonymous"},{"email":"karen@mapbox.com","name":"anonymous"},{"email":"david.dave.clark@gmail.com","name":"anonymous"},{"email":"amyleewalton@gmail.com","name":"anonymous"},{"email":"ian.villeda@gmail.com","name":"anonymous"},{"email":"nicki@mapbox.com","name":"anonymous"},{"email":"jake@jakepruitt.com","name":"anonymous"},{"email":"mcwhittemore@gmail.com","name":"anonymous"},{"email":"siyu.song@gmail.com","name":"anonymous"},{"email":"ghoshkaj@gmail.com","name":"anonymous"},{"email":"ulsh@mapbox.com","name":"anonymous"},{"email":"emily@mapbox.com","name":"anonymous"},{"email":"sam@mapbox.com","name":"anonymous"},{"email":"alex@mapbox.com","name":"anonymous"},{"email":"will@mapbox.com","name":"anonymous"},{"email":"sanjay@mapbox.com","name":"anonymous"},{"email":"aruna@mapbox.com","name":"anonymous"},{"email":"matt@mattficke.com","name":"anonymous"},{"email":"andrew@mapbox.com","name":"anonymous"},{"email":"nicholas.ingalls@gmail.com","name":"anonymous"},{"email":"tlee@mapbox.com","name":"anonymous"},{"email":"dubois@mapbox.com","name":"anonymous"},{"email":"young@mapbox.com","name":"anonymous"},{"email":"ian@mapbox.com","name":"anonymous"},{"email":"jeff@miccolis.net","name":"anonymous"},{"email":"ryan.clark.j@gmail.com","name":"anonymous"},{"email":"lauren@mapbox.com","name":"anonymous"},{"email":"bobby@mapbox.com","name":"anonymous"},{"email":"tristen.brown@gmail.com","name":"anonymous"},{"email":"accounts@mapbox.com","name":"anonymous"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cheap-ruler-2.5.1.tgz_1511865395844_0.6789416603278369"},"directories":{},"contributors":[]},"3.0.0":{"name":"cheap-ruler","version":"3.0.0","description":"A collection of fast approximations to common geographic measurements.","main":"cheap-ruler.js","module":"index.js","jsdelivr":"cheap-ruler.min.js","unpkg":"cheap-ruler.min.js","types":"cheap-ruler.d.ts","dependencies":{},"devDependencies":{"@rollup/plugin-buble":"^0.21.3","@turf/turf":"^5.1.6","benchmark":"^2.1.4","eslint":"^7.0.0","eslint-config-mourner":"^3.0.0","esm":"^3.2.25","node-vincenty":"0.0.6","nyc":"^15.0.1","rollup":"^2.10.2","rollup-plugin-terser":"^5.3.0","tape":"^5.0.0","ts-node":"^8.10.1","typescript":"^3.9.2"},"scripts":{"pretest":"eslint index.js bench test/*.js","test":"tape -r esm test/test.js","posttest":"npm run build && npm run types","types":"ts-node test/types.ts","build":"rollup -c","prepublishOnly":"npm test","cov":"nyc tape test/test.js"},"eslintConfig":{"extends":"mourner"},"repository":{"type":"git","url":"git+https://github.com/mapbox/cheap-ruler.git"},"keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"homepage":"https://github.com/mapbox/cheap-ruler#readme","gitHead":"5cd245d815159db614bc63c7af2fbe74a77d465f","_id":"cheap-ruler@3.0.0","_nodeVersion":"10.20.1","_npmVersion":"6.14.4","dist":{"integrity":"sha512-jggrQEck4Jw4YJ0EJbYl36pMKe2IGvUJTG6U41Wh4jODKx3D5KmjPuQTaWOWDAor3dz3h9UxEYkYCv4fj/pKFA==","shasum":"4212d04db5b5011cb85d4dbcf3f08c5828ff7a9b","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/cheap-ruler/-/cheap-ruler-3.0.0.tgz","fileCount":5,"unpackedSize":25699,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewo9ZCRA9TVsSAnZWagAA5WYP/2lb47kFZd3RKnxgACpU\nl4pfeFwj7ERQDchR/LM+Fh18zJsphgJeJ/Q5Gf991IfFjvLr4tJaKZDzaZtZ\nVkjmMe1ZEIr7/3jMNfMJFYMEBN2HuynUCXL94WuNteSFx4G9Hp4yKAwLrDDr\n7A96vRLlwtFfo6dtfFkfBV/kkP5fXjSR6DMiiR3BmLIz54oxkSXGaY5+0jj9\nm0yde/Yb4gC42NtJdMz8rWp3o2uMZHAificv1dfuuyksqa8KsCnmQN6e/CxZ\nPcBqWG9OXE1WeIQvLVbKAZq8RQpIDpaowts3eVyXs7u6OONJS8LLoOS7Dc0C\nkjwU77r/tv+SYf3OePmE3zloyD9OQ+EEGHtnTZRoDDZiNXv4F6ZuIUAth7Zw\ns2nFT9CUcmKA/umMej6BOrAHScO5p6CChv8sB3h8k7lI/thIwO7mU2SHwtwr\nwVgG7IzDxRp8smpie3QqaZOsM0ON0iCBgg1dRLfmXu/1FDgjBrVWIo1JJYLT\nolH45J7jFsoyL8uMWFHbruQhiS4w0NxThj9ECoqSwtVv87phPUZcZlpGqSY4\nlt1JBsk7blE5YCBjRhTJuuXIZ1NIYWK7ayyZP3b4doOkTbHVvwQ0vnawDSV9\ndL6RH2UIvnxQscWBS7kLFU/dpz9xktKzgd7vR24YjWkoGQk+eNkJgObMWe/d\nOboC\r\n=N3zX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0qqTsWipKN+YOHWfwBceLs8SFZ4TPfMm7S+TIwq7aJAIgYVwhXo/P7HOEW4QdY9G7NTbaS8u2qmtsIvXwdgZXNEY="}]},"maintainers":[{"email":"accounts@mapbox.com","name":"anonymous"},{"email":"accounts+npm-mapbox-machine-user@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-01@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-02@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-03@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-04@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-05@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-06@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-07@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-08@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-09@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-advanced-actions@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-npm-ci@mapbox.com","name":"anonymous"},{"email":"agafonkin@gmail.com","name":"anonymous"}],"_npmUser":{"name":"anonymous","email":"agafonkin@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cheap-ruler_3.0.0_1589808985085_0.05810379956077516"},"_hasShrinkwrap":false,"contributors":[]},"3.0.1":{"name":"cheap-ruler","version":"3.0.1","description":"A collection of fast approximations to common geographic measurements.","main":"cheap-ruler.js","module":"index.js","jsdelivr":"cheap-ruler.min.js","unpkg":"cheap-ruler.min.js","types":"cheap-ruler.d.ts","dependencies":{},"devDependencies":{"@rollup/plugin-buble":"^0.21.3","@turf/turf":"^5.1.6","benchmark":"^2.1.4","eslint":"^7.0.0","eslint-config-mourner":"^3.0.0","esm":"^3.2.25","node-vincenty":"0.0.6","nyc":"^15.0.1","rollup":"^2.10.2","rollup-plugin-terser":"^5.3.0","tape":"^5.0.0","ts-node":"^8.10.1","typescript":"^3.9.2"},"scripts":{"pretest":"eslint index.js bench test/*.js","test":"tape -r esm test/test.js","posttest":"npm run build && npm run types","types":"ts-node test/types.ts","build":"rollup -c","prepublishOnly":"npm test","cov":"nyc tape test/test.js"},"eslintConfig":{"extends":"mourner"},"repository":{"type":"git","url":"git+https://github.com/mapbox/cheap-ruler.git"},"keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"homepage":"https://github.com/mapbox/cheap-ruler#readme","gitHead":"6cbe63df0cf2034d356d41a02e4cf97c91606d05","_id":"cheap-ruler@3.0.1","_nodeVersion":"10.20.1","_npmVersion":"6.14.4","dist":{"integrity":"sha512-bmBKGkNKcwCpltGzfMXZMrFE06SG8dgSv96W39Mk+um7zbNTQNumKl5LBwFC0gbffy8Jnf0+SDHsOqpDYJxYow==","shasum":"3df3bd6fe664d8cab9e9e826bba24d7271e7645a","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/cheap-ruler/-/cheap-ruler-3.0.1.tgz","fileCount":7,"unpackedSize":41235,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewo/0CRA9TVsSAnZWagAASmkP/jXDi3qLJW6CS6doowe/\nvAEboRwmLxIG84UpHG2rmnKKhgNjzneRYTuh3I7QJ/FsMGMTZCUw/7gi3dv7\nDYqZNQtb+yPNW6a78zhl2gPRWklByUvNE8cg3zoBrzPfdcDWsgdZS7xbED82\nsjU+E5v7eQ2uaCDZeq2fp5PfZa4cUThbJAHnBuK5mIc9Qkn0eVWN2PmhHvUw\nD88CsOXu+f1eSPZif1wegXqo+K04kRMcg2HgX6mT+SFSi/gXPZYyVb1qaO/P\niKInccgVNkjTnUOxZwP5ckzgEHhhCxdd3RaOGCuWIN76WkAfJs1GF412Pq7q\nQYNw4HMYNzV/DJh5NezsM6R1DV5LU78Umu8ma6Y9aKDb/PU+QmhLDlKdS4Ay\n22jB4OqLV3hbDlgNR71/IwuHBd2fNxSPUy2prGxhzoPqCowQLUkV8zjnfsnj\nBYIi609IBTpci0Qqd1cjrHAV6Q2Ags7nH4cioawIGMvIDwc2HplVClWW2gWN\nSXb4E2k2jhiwKDqOwoGNF9JEfwUuX6ffUgG8IhfWHl3Vtjpyo6VdhS35BaJP\nAFM+Ne3126u3wjzAt0SfF4LBF14HXQvtzTOwLwH0mnxHe5gNL4I2TRY8oje/\n09HNYDoxmNEW/mpBe8I3dyOzUzOEs9citfamroFfR/MKD0nk7zSV3jPSBIqF\nq8IY\r\n=2nFR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlSRh7P3D064+3ngOg60yq6SJJeyrwkbDzJYN5olMNEAIhAPCxChjlql2lwWSndqOoJ7e6Vuo9LGA0ro+WTT4PBJI0"}]},"maintainers":[{"email":"accounts@mapbox.com","name":"anonymous"},{"email":"accounts+npm-mapbox-machine-user@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-01@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-02@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-03@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-04@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-05@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-06@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-07@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-08@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-09@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-advanced-actions@mapbox.com","name":"anonymous"},{"email":"accounts+npmjs-npm-ci@mapbox.com","name":"anonymous"},{"email":"agafonkin@gmail.com","name":"anonymous"}],"_npmUser":{"name":"anonymous","email":"agafonkin@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cheap-ruler_3.0.1_1589809140440_0.1587499328905808"},"_hasShrinkwrap":false,"contributors":[]},"3.0.2":{"name":"cheap-ruler","version":"3.0.2","description":"A collection of fast approximations to common geographic measurements.","main":"cheap-ruler.js","module":"index.js","jsdelivr":"cheap-ruler.min.js","unpkg":"cheap-ruler.min.js","types":"cheap-ruler.d.ts","dependencies":{},"devDependencies":{"@rollup/plugin-buble":"^0.21.3","@turf/turf":"^6.5.0","benchmark":"^2.1.4","eslint":"^8.2.0","eslint-config-mourner":"^3.0.0","esm":"^3.2.25","node-vincenty":"0.0.6","nyc":"^15.1.0","rollup":"^2.60.0","rollup-plugin-terser":"^7.0.2","tape":"^5.3.2","ts-node":"^10.4.0","typescript":"^4.4.4"},"scripts":{"pretest":"eslint index.js bench test/*.js","test":"tape -r esm test/test.js","posttest":"npm run build && npm run types","types":"ts-node test/types.ts","build":"rollup -c","prepublishOnly":"npm test","cov":"nyc tape test/test.js"},"eslintConfig":{"extends":"mourner"},"repository":{"type":"git","url":"git+https://github.com/mapbox/cheap-ruler.git"},"keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"homepage":"https://github.com/mapbox/cheap-ruler#readme","gitHead":"f469d58be8a6f46ad8c571a7544edbe2ebd942d7","_id":"cheap-ruler@3.0.2","_nodeVersion":"14.19.1","_npmVersion":"8.5.5","dist":{"integrity":"sha512-02T332h1/HTN6cDSufLP8x4JzDs2+VC+8qZ/N0kWIVPyc2xUkWwWh3B2fJxR7raXkL4Mq7k554mfuM9ofv/vGg==","shasum":"60d2b3a0cb77a420472c8c5bb8f2c320fba4bb87","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/cheap-ruler/-/cheap-ruler-3.0.2.tgz","fileCount":7,"unpackedSize":41519,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiRBHmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp9fw/+PZp3oO3Yimkbs0aDzCqAsPgoZPe6xXIcV7+NJ/Lkz94vj3c/\r\nsKAEtIAfQ38vq5iwmCDTVqENcVtAH7U+WVxG/qpN4ngLMBu01YMW0XGEdA4u\r\nRWwolL6bnU08PLciQUbF+B1MC4HvBknfRgn7/7ACKTINz9JCg8T8luEPLxQp\r\n7Uus5TanUER8GR6a90B/9uOq3ipk2J8mBS44cqqxn4HSJbAC9EabdTDCjocN\r\nhmSK+Ym/5nweIMrjcADuPjFH2/MaqnjZV6TgHwfjp7ATgAxmNRqhxUidrAfn\r\nTOTCuZKBPW3Ih3gsh6+5B89ll8yLsi/GP/O5Vo97phE57NMv2jUWybWP2LUe\r\nioCCInh2fm9Cr3gdrOxcqeA0stmq0OdlFfAcrGjWF3kHdIpR2+qweTNAb45o\r\nFuEKCM/Nm2vg6SyOGM2X5PJFEeqnskI+pA9kMn+fXxQfomfhPrXxlCdEtgoP\r\nX1cFI7lULkLo4T6nB1jLm3FdqNGKJGQrMiC5n3tenmaUZJpAzZTHkWpgX0T2\r\ntFMV88JngSnk0+2h2D1fh6VpyXF1+vzzQ0qzwUv72MPt8fE2LvOyeWg9H2xv\r\nEC4iUH9epedmrmvl/O8q01183H3t4YL5LUHvuKy/uzSU4KMYPOb6vy+3Wxb2\r\nvxoVnkB/RkYW2RXtjp+L6gwA2lU3kdLtXnU=\r\n=jWWw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHBLbaV/czMRGbv4X4ec0k9zCvZZ1wo3i8T1cWNOc9HuAiEA/+DqOSdL8SzQgPXDXr90UWJxo0wbTPEb5knpLjxdLrA="}]},"_npmUser":{"name":"anonymous","email":"agafonkin@gmail.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"accounts+npmjs-01@mapbox.com"},{"name":"anonymous","email":"accounts+npmjs-02@mapbox.com"},{"name":"anonymous","email":"accounts+npmjs-07@mapbox.com"},{"name":"anonymous","email":"accounts+npmjs-03@mapbox.com"},{"name":"anonymous","email":"accounts+npmjs-04@mapbox.com"},{"name":"anonymous","email":"accounts+npmjs-09@mapbox.com"},{"name":"anonymous","email":"accounts+npmjs-05@mapbox.com"},{"name":"anonymous","email":"accounts+npmjs-06@mapbox.com"},{"name":"anonymous","email":"accounts+npmjs-08@mapbox.com"},{"name":"anonymous","email":"accounts+npmjs-advanced-actions@mapbox.com"},{"name":"anonymous","email":"accounts+npmjs-npm-ci@mapbox.com"},{"name":"anonymous","email":"accounts+npmjs@mapbox.com"},{"name":"anonymous","email":"accounts@mapbox.com"},{"name":"anonymous","email":"accounts+npm-mapbox-machine-user@mapbox.com"},{"name":"anonymous","email":"agafonkin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cheap-ruler_3.0.2_1648628198497_0.8380411940419279"},"_hasShrinkwrap":false,"contributors":[]},"4.0.0":{"name":"cheap-ruler","version":"4.0.0","description":"A collection of fast approximations to common geographic measurements.","author":{"name":"Vladimir Agafonkin"},"license":"ISC","type":"module","main":"cheap-ruler.js","exports":"./index.js","module":"index.js","types":"index.d.ts","devDependencies":{"@turf/turf":"^7.0.0","benchmark":"^2.1.4","eslint":"^9.5.0","eslint-config-mourner":"^4.0.0","node-vincenty":"0.0.6","rollup":"^4.18.0","typescript":"^5.5.2"},"scripts":{"pretest":"eslint index.js bench test/*.js","test":"tsc && node --test test/test.js","build":"rollup index.js -o cheap-ruler.js -n CheapRuler -f umd","prepublishOnly":"npm test && npm run build","cov":"node --test --experimental-test-coverage test/test.js"},"repository":{"type":"git","url":"git+https://github.com/mapbox/cheap-ruler.git"},"keywords":["geospatial","measurement","approximation","distance"],"_id":"cheap-ruler@4.0.0","gitHead":"a34db1596c215c3ad2d34af37e179b8cadf08445","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"homepage":"https://github.com/mapbox/cheap-ruler#readme","_nodeVersion":"20.14.0","_npmVersion":"10.8.0","dist":{"integrity":"sha512-0BJa8f4t141BYKQyn9NSQt1PguFQXMXwZiA5shfoaBYHAb2fFk2RAX+tiWMoQU+Agtzt3mdt0JtuyshAXqZ+Vw==","shasum":"bdc984de7e0e3f748bdfd2dbe23ec6b9dc820a09","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/cheap-ruler/-/cheap-ruler-4.0.0.tgz","fileCount":6,"unpackedSize":48159,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZDp27avfOQ6GsnJ0GWueTcCbz5ycFELmdxNdE+pFd0AIhAO6qDPat8Es5oQXvxoSgCNTMYo8RCJtbUQYd/Nu4+ui6"}]},"_npmUser":{"name":"anonymous","email":"agafonkin@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cheap-ruler_4.0.0_1719414317092_0.483373562317686"},"_hasShrinkwrap":false,"contributors":[]}},"dist-tags":{"latest":"4.0.0"},"name":"cheap-ruler","time":{"modified":"2024-06-26T15:23:24.824Z","created":"2022-01-26T21:33:04.757Z","1.0.0":"2016-04-15T16:39:26.942Z","1.1.0":"2016-04-21T18:41:54.719Z","1.2.0":"2016-04-22T13:34:55.690Z","1.3.0":"2016-04-22T15:23:59.852Z","2.0.0":"2016-04-22T20:03:06.785Z","2.1.0":"2016-04-24T13:22:26.226Z","2.2.0":"2016-04-25T12:43:15.464Z","2.3.0":"2016-04-26T14:29:17.595Z","2.4.0":"2016-05-03T07:53:31.358Z","2.4.1":"2016-05-03T15:26:52.275Z","2.5.0":"2017-03-06T22:19:54.248Z","2.5.1":"2017-11-28T10:36:36.772Z","3.0.0":"2020-05-18T13:36:25.201Z","3.0.1":"2020-05-18T13:39:00.545Z","3.0.2":"2022-03-30T08:16:38.695Z","4.0.0":"2024-06-26T15:05:17.272Z"},"readme":"# cheap-ruler [![Node](https://github.com/mapbox/cheap-ruler/actions/workflows/node.yml/badge.svg)](https://github.com/mapbox/cheap-ruler/actions/workflows/node.yml) [![](https://img.shields.io/badge/simply-awesome-brightgreen.svg)](https://github.com/mourner/projects)\n\nA collection of very fast approximations to common geodesic measurements.\nUseful for performance-sensitive code that measures things on a city scale. Can be an order of magnitude faster than corresponding [Turf](http://turfjs.org/) methods.\n\nThe approximations are based on the [WGS84 ellipsoid model of the Earth](https://en.wikipedia.org/wiki/Earth_radius#Meridional), projecting coordinates to a flat surface that approximates the ellipsoid around a certain latitude.\nFor distances under 500 kilometers and not on the poles,\nthe results are very precise — within [0.1% margin of error](#precision)\ncompared to [Vincenti formulas](https://en.wikipedia.org/wiki/Vincenty%27s_formulae),\nand usually much less for shorter distances.\n\n## Usage\n\n```js\nvar ruler = new CheapRuler(35.05, 'miles'); // calculations around latitude 35\n...\nvar distance = ruler.distance([30.51, 50.32], [30.52, 50.312]);\nvar lineLength = ruler.lineDistance(line.geometry.coordinates);\nvar bbox = ruler.bufferPoint([30.5, 50.5], 0.01);\n```\n\n**Note**: to get the full performance benefit,\ncreate a ruler object only once per a general area of calculation,\nand then reuse it as much as possible.\nDon't create a new ruler for every calculation.\n\n### Creating a ruler object\n\n#### new CheapRuler(latitude[, units])\n\nCreates a ruler object that will approximate measurements around the given latitude.\nUnits are one of: `kilometers` (default), `miles`, `nauticalmiles`, `meters`, `yards`, `feet`, `inches`.\n\n```js\nconst ruler = new CheapRuler(50.5, 'meters');\n````\n\n#### CheapRuler.fromTile(y, z[, units])\n\nCreates a ruler object from tile coordinates (`y` and `z`).\n\n```js\nconst ruler = CheapRuler.fromTile(1567, 12);\n```\n\n### Ruler methods\n\n#### distance(a, b)\n\nGiven two points of the form `[longitude, latitude]`, returns the distance.\n\n```js\nconst distance = ruler.distance([30.5, 50.5], [30.51, 50.49]);\n```\n\n#### bearing(a, b)\n\nReturns the bearing between two points in angles.\n\n```js\nconst bearing = ruler.bearing([30.5, 50.5], [30.51, 50.49]);\n```\n\n#### destination(p, dist, bearing)\n\nReturns a new point given distance and bearing from the starting point.\n\n```js\nconst point = ruler.destination([30.5, 50.5], 0.1, 90);\n```\n\n#### offset(p, dx, dy)\n\nReturns a new point given easting and northing offsets from the starting point.\n\n```js\nconst point = ruler.offset([30.5, 50.5], 10, 5); // 10km east and 5km north\n```\n\n#### lineDistance(line)\n\nGiven a line (an array of points), returns the total line distance.\n\n```js\nconst length = ruler.lineDistance([\n    [-67.031, 50.458], [-67.031, 50.534],\n    [-66.929, 50.534], [-66.929, 50.458]\n]);\n```\n\n#### area(polygon)\n\nGiven a polygon (an array of rings, where each ring is an array of points), returns the area.\nNote that it returns the value in the specified units\n(square kilometers by default) rather than square meters as in `turf.area`.\n\n```js\nconst area = ruler.area([[\n    [-67.031, 50.458], [-67.031, 50.534], [-66.929, 50.534],\n    [-66.929, 50.458], [-67.031, 50.458]\n]]);\n```\n\n#### pointToSegmentDistance(p, a, b)\n\nReturns the distance from a point `p` to a line segment `a` to `b`.\n\n```js\nconst distance = ruler.pointToSegmentDistance([-77.034076, 38.882017],\n    [-77.031669, 38.878605], [-77.029609, 38.881946]);\n````\n\n#### along(line, dist)\n\nReturns the point at a specified distance along the line.\n\n```js\nconst point = ruler.along(line, 2.5);\n```\n\n#### pointOnLine(line, p)\n\nReturns an object of the form `{point, index, t}`, where `point` is closest point on the line from the given point,\n`index` is the start index of the segment with the closest point, and `t` is a parameter from 0 to 1 that indicates\nwhere the closest point is on that segment.\n\n```js\nconst point = ruler.pointOnLine(line, [-67.04, 50.5]).point;\n```\n\n#### lineSlice(start, stop, line)\n\nReturns a part of the given line between the start and the stop points (or their closest points on the line).\n\n```js\nconst part = ruler.lineSlice([-67.04, 50.5], [-67.05, 50.56], line);\n```\n\n#### lineSliceAlong(startDist, stopDist, line)\n\nReturns a part of the given line between the start and the stop points indicated by distance along the line.\n\n```js\nconst part = ruler.lineSliceAlong(10, 20, line);\n```\n\n#### bufferPoint(p, buffer)\n\nGiven a point, returns a bounding box object (`[w, s, e, n]`) created from the given point buffered by a given distance.\n\n```js\nconst bbox = ruler.bufferPoint([30.5, 50.5], 0.01);\n```\n\n#### bufferBBox(bbox, buffer)\n\nGiven a bounding box, returns the box buffered by a given distance.\n\n```js\nconst bbox = ruler.bufferBBox([30.5, 50.5, 31, 51], 0.2);\n```\n\n#### insideBBox(p, bbox)\n\nReturns true if the given point is inside in the given bounding box, otherwise false.\n\n```js\nconst inside = ruler.insideBBox([30.5, 50.5], [30, 50, 31, 51]);\n```\n\n### Units conversion\n\nMultipliers for converting between units are also exposed in `CheapRuler.units`:\n\n```js\n// convert 50 meters to yards\n50 * CheapRuler.units.yards / CheapRuler.units.meters;\n```\n\nIf you don't specify units when creating a ruler object,\nyou can use these constants to convert return values (using multiplication)\nand input arguments (using division) to any units:\n\n```js\n// get distance between points in feet\nconst distanceInFeet = ruler.distance(a, b) * CheapRuler.units.feet;\n\n// make a bbox from a point with a 200 inch buffer\nconst box = ruler.bufferPoint(p, 200 / CheapRuler.units.inches);\n```\n\n## Install\n\n- NPM: `npm install cheap-ruler`\n- [Browser build on CDN (ESM)](https://esm.run/cheap-ruler)\n- [Browser build on CDN (UMD)](https://cdn.jsdelivr.net/npm/cheap-ruler/cheap-ruler.js)\n\n## Precision\n\nA table that shows the margin of error for `ruler.distance` compared to `node-vincenty`\n(a state of the art distance formula):\n\n| lat | 0&deg; | 10&deg; | 20&deg; | 30&deg; | 40&deg; | 50&deg; | 60&deg; | 70&deg; | 80&deg; |\n| --- |  --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| 1km | 0% | 0% | 0% | 0% | 0% | 0% | 0% | 0% | 0% |\n| 100km | 0% | 0% | 0% | 0% | 0% | 0% | 0% | 0.01% | 0.03% |\n| 500km | 0.01% | 0.01% | 0.01% | 0.01% | 0.02% | 0.04% | 0.08% | 0.2% | 0.83% |\n| 1000km | 0.03% | 0.03% | 0.04% | 0.06% | 0.1% | 0.17% | 0.33% | 0.8% | 3.38% |\n\nErrors for all other methods are similar.\n\n## Related\n\n- [cheap-ruler-cpp](https://github.com/mapbox/cheap-ruler-cpp) – C++ port of this library\n- [cheap-ruler-rs](https://github.com/vipera/cheap-ruler-rs) – Rust port of this library\n- [flat-projection](https://github.com/Turbo87/flat-projection-rs) – Rust library based on the same concept","users":{}}