{"_id":"cheap-ruler","_rev":"309-e8184a2d931f0f986c9c082eb117a015","name":"cheap-ruler","dist-tags":{"latest":"4.1.0"},"versions":{"1.0.0":{"name":"cheap-ruler","version":"1.0.0","keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","_id":"cheap-ruler@1.0.0","maintainers":[{"name":"mourner","email":"agafonkin@gmail.com"}],"homepage":"https://github.com/mapbox/cheap-ruler#readme","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"dist":{"shasum":"69d706fd87826121e719c6095ef107ae1564b671","tarball":"https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-1.0.0.tgz","integrity":"sha512-C334LtBpYen1zNR8kmfLIknOOK8HOnSHbKe0/M63wThoEf+rdgmfH0zzSMlXcLJ69TtjfYEdPZ6U+xDWZqUJtQ==","signatures":[{"sig":"MEUCIAwAs7PpoLjQtDVGNcvXFrfdw11HWEmg459JQnZOz4LdAiEA6WELu81AO0oNxlt0wz+QgDJ+MiId2OJIu0/39/W9x6Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"69d706fd87826121e719c6095ef107ae1564b671","gitHead":"743c626e8fb22e632012816713555a53d27c0213","scripts":{"test":"eslint index.js"},"_npmUser":{"name":"mourner","email":"agafonkin@gmail.com"},"repository":{"url":"git+https://github.com/mapbox/cheap-ruler.git","type":"git"},"_npmVersion":"2.15.2","description":"A collection of fast approximations to common geographic measurements.","directories":{},"_nodeVersion":"5.10.1","dependencies":{},"eslintConfig":{"extends":"mourner"},"devDependencies":{"turf":"^2.0.2","eslint":"^2.7.0","benchmark":"^2.1.0","eslint-config-mourner":"^2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cheap-ruler-1.0.0.tgz_1460738364629_0.539176830323413","host":"packages-12-west.internal.npmjs.com"}},"1.1.0":{"name":"cheap-ruler","version":"1.1.0","keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","_id":"cheap-ruler@1.1.0","maintainers":[{"name":"mourner","email":"agafonkin@gmail.com"}],"homepage":"https://github.com/mapbox/cheap-ruler#readme","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"dist":{"shasum":"381eb10da22de9fc44cc9bfcb13708804a5ba093","tarball":"https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-1.1.0.tgz","integrity":"sha512-ifZYFMivoXRIGAWGYjsDH0KTd6otksd0LAZ5ALe2T3M9hkL6yMKBbPgt+scCjDtu4UgD8Nn1RCmqO8XaWD88Ag==","signatures":[{"sig":"MEUCIQCpa4C+Yg74zC4+04Atdi57MUUlPkyxoWzPrbQ7149GzgIgEJSv8+iH1ccvZhyJUCeSL24DM7u9VW9UHY0kATZR/Lw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"381eb10da22de9fc44cc9bfcb13708804a5ba093","gitHead":"41f9fa9a0ca8474431f34a237d02300533f4d83a","scripts":{"test":"tape test/test.js","pretest":"eslint index.js bench test/test.js"},"_npmUser":{"name":"mourner","email":"agafonkin@gmail.com"},"repository":{"url":"git+https://github.com/mapbox/cheap-ruler.git","type":"git"},"_npmVersion":"2.15.2","description":"A collection of fast approximations to common geographic measurements.","directories":{},"_nodeVersion":"5.10.1","dependencies":{},"eslintConfig":{"extends":"mourner"},"devDependencies":{"tape":"^4.5.1","turf":"^2.0.2","eslint":"^2.7.0","benchmark":"^2.1.0","eslint-config-mourner":"^2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cheap-ruler-1.1.0.tgz_1461264112406_0.7527988420333713","host":"packages-12-west.internal.npmjs.com"}},"1.2.0":{"name":"cheap-ruler","version":"1.2.0","keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","_id":"cheap-ruler@1.2.0","maintainers":[{"name":"mourner","email":"agafonkin@gmail.com"}],"homepage":"https://github.com/mapbox/cheap-ruler#readme","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"dist":{"shasum":"718845652f744d068c1de842253cc4faca5a3f0f","tarball":"https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-1.2.0.tgz","integrity":"sha512-+DCEvfcyanm4qCvnSs3KRRGVr5QNrbUbrWMFbwkyVq9bOlrZ/jl1s+AWa0TtJkp87rd1i4ifAl4HM/EgUU/UlQ==","signatures":[{"sig":"MEUCIQCBztU+RDpjmUfSrWGTDh57htPmWTMaTjls10Gz1TUZJwIgVlzph8oGZ7hJrrMKb6BGaoTkpWBLDdB/kZzUgG3g/Z0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"718845652f744d068c1de842253cc4faca5a3f0f","gitHead":"e2e846d6d5915e537059c89e2a2c957d119e81b4","scripts":{"test":"tape test/test.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","pretest":"eslint index.js bench test/test.js","prepublish":"npm run build"},"_npmUser":{"name":"mourner","email":"agafonkin@gmail.com"},"repository":{"url":"git+https://github.com/mapbox/cheap-ruler.git","type":"git"},"_npmVersion":"2.15.2","description":"A collection of fast approximations to common geographic measurements.","directories":{},"_nodeVersion":"5.10.1","dependencies":{},"eslintConfig":{"extends":"mourner"},"devDependencies":{"tape":"^4.5.1","turf":"^2.0.2","eslint":"^2.7.0","benchmark":"^2.1.0","browserify":"^13.0.0","eslint-config-mourner":"^2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cheap-ruler-1.2.0.tgz_1461332093079_0.0784096559509635","host":"packages-12-west.internal.npmjs.com"}},"1.3.0":{"name":"cheap-ruler","version":"1.3.0","keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","_id":"cheap-ruler@1.3.0","maintainers":[{"name":"mourner","email":"agafonkin@gmail.com"}],"homepage":"https://github.com/mapbox/cheap-ruler#readme","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"dist":{"shasum":"eabf9352dc94d4c7c9788100cf26885c86b9ee97","tarball":"https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-1.3.0.tgz","integrity":"sha512-kEemxCjPOaGeKLk47KKcfO4QYlNEYh4Y0S4nCztZnhgwKAM9G5QadpJLSkb4B9Y+t67HmOi1eeVNLVOhs7K5YA==","signatures":[{"sig":"MEUCIQDfvoEcuOBe7h19KErjFu+y9M7oUFEO+HawV+ra2A2E1wIgIrzZVOs1ptan/ReAvUaGhU+joDASv9uVU0Ja542mgpU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"eabf9352dc94d4c7c9788100cf26885c86b9ee97","gitHead":"f82e2938299badcd52d3d71970f3593ad648bbae","scripts":{"test":"tape test/test.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","pretest":"eslint index.js bench test/test.js","prepublish":"npm run build"},"_npmUser":{"name":"mourner","email":"agafonkin@gmail.com"},"repository":{"url":"git+https://github.com/mapbox/cheap-ruler.git","type":"git"},"_npmVersion":"2.15.2","description":"A collection of fast approximations to common geographic measurements.","directories":{},"_nodeVersion":"5.10.1","dependencies":{},"eslintConfig":{"extends":"mourner"},"devDependencies":{"tape":"^4.5.1","turf":"^2.0.2","eslint":"^2.7.0","benchmark":"^2.1.0","browserify":"^13.0.0","eslint-config-mourner":"^2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cheap-ruler-1.3.0.tgz_1461338637312_0.9139232223387808","host":"packages-12-west.internal.npmjs.com"}},"2.0.0":{"name":"cheap-ruler","version":"2.0.0","keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","_id":"cheap-ruler@2.0.0","maintainers":[{"name":"mourner","email":"agafonkin@gmail.com"}],"homepage":"https://github.com/mapbox/cheap-ruler#readme","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"dist":{"shasum":"752de9f0267a3aa5be36f370aa2ee5c8f6942847","tarball":"https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-2.0.0.tgz","integrity":"sha512-yVUMV0P57T0/iP7UNWQ5SC0aAEpFxzneICGwluKk2Mf9Dlex3rHogv7TEbEfPYMBIrAzfw6P70DBzSyptZb5PQ==","signatures":[{"sig":"MEQCIA903R2pjddrEBZ2sI6ynbIj8mB9ZpjjhiIHB7Bgjid0AiBe0cwuHZvt+U1gwB7/vtGWX4EwIoMW+/o33rBnKNd14A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"752de9f0267a3aa5be36f370aa2ee5c8f6942847","gitHead":"a50c5fd59736149b2b4d151ce45ee60ea53bd7b1","scripts":{"test":"tape test/test.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","pretest":"eslint index.js bench test/test.js","prepublish":"npm run build"},"_npmUser":{"name":"mourner","email":"agafonkin@gmail.com"},"repository":{"url":"git+https://github.com/mapbox/cheap-ruler.git","type":"git"},"_npmVersion":"2.15.2","description":"A collection of fast approximations to common geographic measurements.","directories":{},"_nodeVersion":"5.10.1","dependencies":{},"eslintConfig":{"extends":"mourner"},"devDependencies":{"tape":"^4.5.1","turf":"^2.0.2","eslint":"^2.7.0","benchmark":"^2.1.0","browserify":"^13.0.0","eslint-config-mourner":"^2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cheap-ruler-2.0.0.tgz_1461355384955_0.8669803042430431","host":"packages-16-east.internal.npmjs.com"}},"2.1.0":{"name":"cheap-ruler","version":"2.1.0","keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","_id":"cheap-ruler@2.1.0","maintainers":[{"name":"mourner","email":"agafonkin@gmail.com"}],"homepage":"https://github.com/mapbox/cheap-ruler#readme","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"dist":{"shasum":"d554104929a845a61030452ee862658b80a8f916","tarball":"https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-2.1.0.tgz","integrity":"sha512-cdeA2XPJ39xqOd98TOFO5nKYdMuOjTF9+3qodAoWQ6lSm6IxgYfeyfNv6RAbuxaqsmXL88w6eyl2b4wxyI9S5g==","signatures":[{"sig":"MEQCIHj54UEBEMCGlFop0VsOMoXHGRaKWYk6FkY1s3hJ9WN/AiASp4H9Wo3+iCwPo9YnJ9SHIaSSL1NV01ppQVagiRkvnQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"d554104929a845a61030452ee862658b80a8f916","gitHead":"3072fd0d849d6239fdaf08ae204ad916758dbbef","scripts":{"cov":"istanbul cover tape test/test.js","test":"tape test/test.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","pretest":"eslint index.js bench test/test.js","prepublish":"npm run build"},"_npmUser":{"name":"mourner","email":"agafonkin@gmail.com"},"repository":{"url":"git+https://github.com/mapbox/cheap-ruler.git","type":"git"},"_npmVersion":"3.8.6","description":"A collection of fast approximations to common geographic measurements.","directories":{},"_nodeVersion":"5.11.0","dependencies":{},"eslintConfig":{"extends":"mourner"},"devDependencies":{"tape":"^4.5.1","turf":"^2.0.2","eslint":"^2.7.0","istanbul":"^0.4.3","benchmark":"^2.1.0","browserify":"^13.0.0","eslint-config-mourner":"^2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cheap-ruler-2.1.0.tgz_1461504144283_0.5099698482081294","host":"packages-16-east.internal.npmjs.com"}},"2.2.0":{"name":"cheap-ruler","version":"2.2.0","keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","_id":"cheap-ruler@2.2.0","maintainers":[{"name":"mourner","email":"agafonkin@gmail.com"}],"homepage":"https://github.com/mapbox/cheap-ruler#readme","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"dist":{"shasum":"c3b8462e8d523534479dffac4354982c1e35179a","tarball":"https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-2.2.0.tgz","integrity":"sha512-2jsd1UZbcXm1FDApHrvkcmkW5cgnKAoEBLXUwDj+kQeFJwAkrJSyp6w6nZccFtxpmfyuHz2cxo/0UW+sN134oQ==","signatures":[{"sig":"MEUCIEvHOaVPJO3YW4Cjo6w/FPWIh8XgnqdDsyviJ81nv4mBAiEAslfYb3Je/NKBvgRLRMtDfwnGyLnDYpuac/Cq4Pgs6Lo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"c3b8462e8d523534479dffac4354982c1e35179a","gitHead":"04ecd03e10bc209b50d058e2e4da7db3e97ed0b3","scripts":{"cov":"istanbul cover tape test/test.js","test":"tape test/test.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","pretest":"eslint index.js bench test/test.js","prepublish":"npm run build"},"_npmUser":{"name":"mourner","email":"agafonkin@gmail.com"},"repository":{"url":"git+https://github.com/mapbox/cheap-ruler.git","type":"git"},"_npmVersion":"3.8.6","description":"A collection of fast approximations to common geographic measurements.","directories":{},"_nodeVersion":"5.11.0","dependencies":{},"eslintConfig":{"extends":"mourner"},"devDependencies":{"tape":"^4.5.1","turf":"^2.0.2","eslint":"^2.7.0","istanbul":"^0.4.3","benchmark":"^2.1.0","browserify":"^13.0.0","eslint-config-mourner":"^2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cheap-ruler-2.2.0.tgz_1461588193077_0.6620675823651254","host":"packages-12-west.internal.npmjs.com"}},"2.3.0":{"name":"cheap-ruler","version":"2.3.0","keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","_id":"cheap-ruler@2.3.0","maintainers":[{"name":"mourner","email":"agafonkin@gmail.com"}],"homepage":"https://github.com/mapbox/cheap-ruler#readme","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"dist":{"shasum":"491e364126b9b775305a0a72e43fa805d08cfc96","tarball":"https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-2.3.0.tgz","integrity":"sha512-7W89y3Kag0QGhlEbl+jCZ3BRjMAlU9XOfavBYYnE352B1OaZpKuncwiEv3f2winqhR/BWSDNW0hgoZH0+8VZYg==","signatures":[{"sig":"MEQCICW3nSVYs/mLiFT9GmNcYaPXhuUu8GB9Zb3h5O7RxNdLAiAX20P9cJ/NTIwLdAidRNk+y2FV5fGUeoa2cj/m6zKeZA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"491e364126b9b775305a0a72e43fa805d08cfc96","gitHead":"6ccb89601e6836bf7c3e2c26c906a0cc816f697e","scripts":{"cov":"istanbul cover tape test/test.js","test":"tape test/test.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","pretest":"eslint index.js bench test/test.js","prepublish":"npm run build"},"_npmUser":{"name":"mourner","email":"agafonkin@gmail.com"},"repository":{"url":"git+https://github.com/mapbox/cheap-ruler.git","type":"git"},"_npmVersion":"3.8.6","description":"A collection of fast approximations to common geographic measurements.","directories":{},"_nodeVersion":"5.11.0","dependencies":{},"eslintConfig":{"extends":"mourner"},"devDependencies":{"tape":"^4.5.1","turf":"^2.0.2","eslint":"^2.7.0","istanbul":"^0.4.3","benchmark":"^2.1.0","browserify":"^13.0.0","eslint-config-mourner":"^2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cheap-ruler-2.3.0.tgz_1461680955134_0.8520950046367943","host":"packages-12-west.internal.npmjs.com"}},"2.4.0":{"name":"cheap-ruler","version":"2.4.0","keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","_id":"cheap-ruler@2.4.0","maintainers":[{"name":"mourner","email":"agafonkin@gmail.com"}],"homepage":"https://github.com/mapbox/cheap-ruler#readme","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"dist":{"shasum":"2e647bef60a9cab79d829fa3bb5dcf20ebdec58d","tarball":"https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-2.4.0.tgz","integrity":"sha512-AC1Fd3e6l31ejEEXR91UsGXTuQW0ebXkecg9p5USXUdWilE5BZSv8hErrmIpnmxKIIsbePxMw+aRkQTtCkPlWQ==","signatures":[{"sig":"MEUCIEkaNFfcJtCfqN3t8WPaheTwg74BllvYvExcHz8NF/XrAiEAmYQK5gCTtXQwsr2/8auigItRdj5KC9F8Qy+hf5lmKBc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"2e647bef60a9cab79d829fa3bb5dcf20ebdec58d","gitHead":"14e7feb359f60c02e57f963a06277916db1c8aa3","scripts":{"cov":"istanbul cover tape test/test.js","test":"tape test/test.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","pretest":"eslint index.js bench test/test.js","prepublish":"npm run build"},"_npmUser":{"name":"mourner","email":"agafonkin@gmail.com"},"repository":{"url":"git+https://github.com/mapbox/cheap-ruler.git","type":"git"},"_npmVersion":"2.15.3","description":"A collection of fast approximations to common geographic measurements.","directories":{},"_nodeVersion":"6.0.0","dependencies":{},"eslintConfig":{"extends":"mourner"},"devDependencies":{"tape":"^4.5.1","turf":"^2.0.2","eslint":"^2.7.0","istanbul":"^0.4.3","benchmark":"^2.1.0","browserify":"^13.0.0","eslint-config-mourner":"^2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cheap-ruler-2.4.0.tgz_1462262010151_0.3629192088264972","host":"packages-16-east.internal.npmjs.com"}},"2.4.1":{"name":"cheap-ruler","version":"2.4.1","keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","_id":"cheap-ruler@2.4.1","maintainers":[{"name":"mourner","email":"agafonkin@gmail.com"}],"homepage":"https://github.com/mapbox/cheap-ruler#readme","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"dist":{"shasum":"67b55d2dec2df18d9043c15ca0968962f33b318d","tarball":"https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-2.4.1.tgz","integrity":"sha512-ZHTZcBBU8JekGDrHKmpuIatKKKMjoalVkocd417l/9wGatMi8VsVKZLWOcP+sV7la6TDEEy1j3jackxUF2vlCw==","signatures":[{"sig":"MEUCIFQ9zcnrkHIzu5TWYFHOGUL78yWfDFl6DhS2QobyHV0WAiEAmDUNibbIqMMKDnbfYtBS2/nBwjWFgRtatdg+mmKKKgM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"67b55d2dec2df18d9043c15ca0968962f33b318d","gitHead":"d756185fb152152cd7c6a01bd894c0de955ad8a3","scripts":{"cov":"istanbul cover tape test/test.js","test":"tape test/test.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","pretest":"eslint index.js bench test/test.js","prepublish":"npm run build"},"_npmUser":{"name":"mourner","email":"agafonkin@gmail.com"},"repository":{"url":"git+https://github.com/mapbox/cheap-ruler.git","type":"git"},"_npmVersion":"2.15.3","description":"A collection of fast approximations to common geographic measurements.","directories":{},"_nodeVersion":"6.0.0","dependencies":{},"eslintConfig":{"extends":"mourner"},"devDependencies":{"tape":"^4.5.1","turf":"^2.0.2","eslint":"^2.7.0","istanbul":"^0.4.3","benchmark":"^2.1.0","browserify":"^13.0.0","eslint-config-mourner":"^2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cheap-ruler-2.4.1.tgz_1462289211166_0.6377219369169325","host":"packages-16-east.internal.npmjs.com"}},"2.5.0":{"name":"cheap-ruler","version":"2.5.0","keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","_id":"cheap-ruler@2.5.0","maintainers":[{"name":"aaronlidman","email":"aaronlidman@gmail.com"},{"name":"aarthykc","email":"aarthy@mapbox.com"},{"name":"ajithranka","email":"ajith@mapbox.com"},{"name":"aliceykuo","email":"alice@mapbox.com"},{"name":"alinapaz","email":"alinapaz@gmail.com"},{"name":"alulsh","email":"ulsh@mapbox.com"},{"name":"amishas157","email":"amisha@mapbox.com"},{"name":"amyleew","email":"amyleewalton@gmail.com"},{"name":"anandthakker","email":"vestibule@anandthakker.net"},{"name":"andreasviglakis","email":"andreas.viglakis@gmail.com"},{"name":"ansis","email":"ansis.brammanis@gmail.com"},{"name":"aparlato","email":"alex.parlato@mapbox.com"},{"name":"apendleton","email":"andrew@mapbox.com"},{"name":"arunasank","email":"aruna@mapbox.com"},{"name":"batpad","email":"sanjay@mapbox.com"},{"name":"benjamintd","email":"benjamin@mapbox.com"},{"name":"bhousel","email":"bryan@mapbox.com"},{"name":"bkowshik","email":"bhargav.kowshik@gmail.com"},{"name":"brendanmcfarland","email":"brendan@mapbox.com"},{"name":"bsrinivasa","email":"bharata+npm@mapbox.com"},{"name":"bsudekum","email":"bobby@mapbox.com"},{"name":"camillacaros","email":"camilla@mapbox.com"},{"name":"captainbarbosa","email":"nadia.barbosa@mapbox.com"},{"name":"chaupow","email":"hello@chau-nguyen.de"},{"name":"chrisloer","email":"chris.loer@mapbox.com"},{"name":"colleenmcginnis","email":"colleen.mcginnis@mapbox.com"},{"name":"danieljh","email":"daniel+npm@trvx.org"},{"name":"danpat","email":"danpat@danpat.net"},{"name":"danswick","email":"dan@mapbox.com"},{"name":"dasulit","email":"dana.sulit@mapbox.com"},{"name":"davidtheclark","email":"david.dave.clark@gmail.com"},{"name":"dnomadb","email":"damon@mapbox.com"},{"name":"dthompson","email":"dthompson@gmail.com"},{"name":"emilymcafee","email":"emily@mapbox.com"},{"name":"emilymdubois","email":"dubois@mapbox.com"},{"name":"enf","email":"fischer@mapbox.com"},{"name":"freenerd","email":"spam@freenerd.de"},{"name":"geohacker","email":"sajjadkm@gmail.com"},{"name":"ghoshkaj","email":"ghoshkaj@gmail.com"},{"name":"gretacb","email":"carol@mapbox.com"},{"name":"ian29","email":"ian.villeda@gmail.com"},{"name":"ianshward","email":"ian@mapbox.com"},{"name":"ingalls","email":"nicholas.ingalls@gmail.com"},{"name":"isiyu","email":"siyu.song@gmail.com"},{"name":"jacquestardie","email":"hi@jacquestardie.org"},{"name":"jfirebaugh","email":"john.firebaugh@gmail.com"},{"name":"jothirnadh","email":"jothirnadh@mapbox.com"},{"name":"jrpruit1","email":"jake@jakepruitt.com"},{"name":"k-mahoney","email":"kara.e.mahoney@gmail.com"},{"name":"kaibot3000","email":"kai@mapbox.com"},{"name":"kaidalgleish","email":"kai@mapbox.com"},{"name":"karenzshea","email":"karen@mapbox.com"},{"name":"karitotp","email":"karito@mapbox.com"},{"name":"katydecorah","email":"decorah@mapbox.com"},{"name":"kepta","email":"0o3ko0@gmail.com"},{"name":"kkaefer","email":"mail@kkaefer.com"},{"name":"kronick","email":"sam.kronick@mapbox.com"},{"name":"l-r","email":"laurier@mapbox.com"},{"name":"laurier","email":"l@pwd.io"},{"name":"lbud","email":"lauren@mapbox.com"},{"name":"lily-chai","email":"lily@mapbox.com"},{"name":"lndsay","email":"lindsay@mapbox.com"},{"name":"lucaswoj","email":"lucas@lucaswoj.com"},{"name":"lukasmartinelli","email":"me@lukasmartinelli.ch"},{"name":"lxbarth","email":"alex@mapbox.com"},{"name":"lyzidiamond","email":"lyzi@mapbox.com"},{"name":"maning","email":"emmanuel.sambale@gmail.com"},{"name":"manoharuss","email":"manohar@mapbox.com"},{"name":"mapbox-admin","email":"accounts@mapbox.com"},{"name":"mapsam","email":"sam@mapbox.com"},{"name":"mateov","email":"matt@mapbox.com"},{"name":"mattficke","email":"matt@mattficke.com"},{"name":"mayaqgao","email":"mayaqgao@gmail.com"},{"name":"mcwhittemore","email":"mcwhittemore@gmail.com"},{"name":"miccolis","email":"jeff@miccolis.net"},{"name":"miles-dev","email":"miles.sackler@mapbox.com"},{"name":"mokob","email":"moritz@mapbox.com"},{"name":"mollymerp","email":"mollylloyd@gmail.com"},{"name":"morganherlocker","email":"morgan.herlocker@gmail.com"},{"name":"mourner","email":"agafonkin@gmail.com"},{"name":"msirenko","email":"max@mapbox.com"},{"name":"nammala","email":"krishna@mapbox.com"},{"name":"natslaughter","email":"nat@mapbox.com"},{"name":"nickcordella","email":"nick.cordella@mapbox.com"},{"name":"nickidlugash","email":"nicki@mapbox.com"},{"name":"oini","email":"oindrila.gupta92@gmail.com"},{"name":"oxidase","email":"michael.krasnyk@gmail.com"},{"name":"pdgoodman","email":"paul@mapbox.com"},{"name":"perrygeo","email":"perrygeo@gmail.colm"},{"name":"planemad","email":"arun.planemad@gmail.com"},{"name":"pratikyadav","email":"pratik@mapbox.com"},{"name":"rclark","email":"ryan.clark.j@gmail.com"},{"name":"rodowi","email":"rod@wilhel.me"},{"name":"rub21","email":"ruben@mapbox.com"},{"name":"rumc","email":"r.ragupathy85@gmail.com"},{"name":"ryan-baumann","email":"rsbaumann@gmail.com"},{"name":"saikia.abhishek","email":"abhishek@mapbox.com"},{"name":"samanbb","email":"saman@mapbox.com"},{"name":"sarahkleins","email":"sarah.kleinman@mapbox.com"},{"name":"sbma44","email":"tlee@mapbox.com"},{"name":"scothis","email":"scothis@gmail.com"},{"name":"sgillies","email":"sean@mapbox.com"},{"name":"springmeyer","email":"dane@mapbox.com"},{"name":"srividyacb","email":"srividyabharadwaj26@gmail.com"},{"name":"tcql","email":"tim.channell@gmail.com"},{"name":"themarex","email":"patrick@mapbox.com"},{"name":"tmcw","email":"tom@macwright.org"},{"name":"tony-cj","email":"tony.chen@mapbox.com"},{"name":"tristen","email":"tristen.brown@gmail.com"},{"name":"uvollmer","email":"ugo.vollmer@mapbox.com"},{"name":"vincents","email":"vincent.sarago@mapbox.com"},{"name":"virginiayung","email":"virginia@mapbox.com"},{"name":"willwhite","email":"will@mapbox.com"},{"name":"xrwang","email":"xiaowei@mapbox.com"},{"name":"yhahn","email":"young@mapbox.com"},{"name":"yunjieli","email":"yunjie.li@mapbox.com"},{"name":"zmully","email":"mully@mapbox.com"}],"homepage":"https://github.com/mapbox/cheap-ruler#readme","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"dist":{"shasum":"776df3968090d9f36dfb34569fc6d7043b1a3aab","tarball":"https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-2.5.0.tgz","integrity":"sha512-L/us0rVIgtfId+1lvEGfE1Kljg9u4OCdJorysWC14H42yK6r9oSxjzIfyWtDA9n0OWKB8tzRp8bUjxHRecwn5g==","signatures":[{"sig":"MEUCIGv4ZP91AIorZyeiaQv8urYzUZZmutg96HedXCDHF5roAiEA2/ceVzIHWbBQ+2eeuyv65AiCrAdYJyldI/hntxaUR/k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","types":"index.d.ts","_shasum":"776df3968090d9f36dfb34569fc6d7043b1a3aab","gitHead":"1f18ca017fa83679b72f46a4eaebf3a491428f37","scripts":{"cov":"istanbul cover tape test/test.js","test":"tape test/test.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","types":"tsc test/types.ts && rm test/types.js","pretest":"eslint index.js bench test/*.js && npm run types","prepublish":"npm run build"},"_npmUser":{"name":"mourner","email":"agafonkin@gmail.com"},"repository":{"url":"git+https://github.com/mapbox/cheap-ruler.git","type":"git"},"_npmVersion":"4.1.2","description":"A collection of fast approximations to common geographic measurements.","directories":{},"_nodeVersion":"7.6.0","dependencies":{},"eslintConfig":{"extends":"mourner"},"devDependencies":{"tape":"^4.6.3","eslint":"^3.17.0","istanbul":"^0.4.5","benchmark":"^2.1.3","@turf/turf":"^3.12.2","browserify":"^14.1.0","typescript":"^2.2.1","node-vincenty":"0.0.6","eslint-config-mourner":"^2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/cheap-ruler-2.5.0.tgz_1488838792294_0.932068694382906","host":"packages-18-east.internal.npmjs.com"}},"2.5.1":{"name":"cheap-ruler","version":"2.5.1","keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","_id":"cheap-ruler@2.5.1","maintainers":[{"name":"okoriep","email":"okorie.puryear@mapbox.com"},{"name":"castledoor","email":"b.jazzy.w@gmail.com"},{"name":"lucaswoj","email":"lucas@lucaswoj.com"},{"name":"electrostat","email":"anthony.agby@mapbox.com"},{"name":"tridip1931","email":"tridip@mapbox.com"},{"name":"norchard","email":"norchard24@gmail.com"},{"name":"yuffster","email":"msteigerwalt@gmail.com"},{"name":"sabaelhilo","email":"saba.elhilo2@gmail.com"},{"name":"mateov","email":"matt@mapbox.com"},{"name":"tapasweni-pathak","email":"tapasweni@mapbox.com"},{"name":"hjudge","email":"hjudge@mapbox.com"},{"name":"scottsfarley93","email":"scott.farley@mapbox.com"},{"name":"akit","email":"angel.kittiyachavalit@gmail.com"},{"name":"tmpsantos","email":"tmpsantos@gmail.com"},{"name":"lobenichou","email":"lo_benichou@protonmail.com"},{"name":"jmkiley","email":"jordan.kiley@mapbox.com"},{"name":"vakila","email":"anjana.vakil@mapbox.com"},{"name":"zugaldia","email":"antonio@mapbox.com"},{"name":"guardiola31337","email":"pablo.guardiola@mapbox.com"},{"name":"mtirwin","email":"irwin@mapbox.com"},{"name":"paigemoody","email":"paige.moody@mapbox.com"},{"name":"oormilavinod","email":"oormila@mapbox.com"},{"name":"fabianguerra","email":"fabian.guerra@gmail.com"},{"name":"boundsj","email":"jesse@rebounds.net"},{"name":"friedbunny","email":"friedbunny@users.noreply.github.com"},{"name":"eschow","email":"emily.chow@mapbox.com"},{"name":"jc-clark","email":"joe.clark@mapbox.com"},{"name":"xianny","email":"xianny@gmail.com"},{"name":"katmeng","email":"katherine.meng@mapbox.com"},{"name":"dhcole","email":"dave@mapbox.com"},{"name":"d-prukop","email":"dave.prukop@mapbox.com"},{"name":"lizziegooding","email":"lizzie.gooding@mapbox.com"},{"name":"markmisener","email":"mark.misener@mapbox.com"},{"name":"nickitaliano","email":"nick.italiano@mapbox.com"},{"name":"taziam","email":"tara.adiseshan@gmail.com"},{"name":"elifitch","email":"eli.fitch.prof+npm@gmail.com"},{"name":"captainbarbosa-mbx","email":"nadia.barbosa@mapbox.com"},{"name":"cammace","email":"cameron@mapbox.com"},{"name":"brunoabinader","email":"bruno@mapbox.com"},{"name":"langstonsmith","email":"langston.smith@mapbox.com"},{"name":"geografa","email":"rafa@mapbox.com"},{"name":"1ec5","email":"mxn@1ec5.org"},{"name":"lshig","email":"liz.shigetoshi@mapbox.com"},{"name":"johnfurrow","email":"hello@johnfurrow.com"},{"name":"aaaandrea","email":"andrea.delrio@mapbox.com"},{"name":"alianthes","email":"ali@mapbox.com"},{"name":"millzpaugh","email":"ann.millspaugh@gmail.com"},{"name":"franka","email":"hello@franka.tech"},{"name":"charloyd","email":"charlie@mapbox.com"},{"name":"juliannebg","email":"julianne@mapbox.com"},{"name":"dthompson","email":"dthompson@gmail.com"},{"name":"ericdeveloper","email":"eric.alessandrini@mapbox.com"},{"name":"jayana","email":"jayana.charles@mapbox.com"},{"name":"chriscx","email":"christopher.cailleaux@gmail.com"},{"name":"poornibadrinath","email":"poornima@mapbox.com"},{"name":"brsbl","email":"bersabel.tadesse@mapbox.com"},{"name":"mal-wood","email":"mallorywood413@gmail.com"},{"name":"luiswalter","email":"luis@mapbox.com"},{"name":"piligab","email":"pilar@mapbox.com"},{"name":"yurasi","email":"galia@mapbox.com"},{"name":"matt.gosline","email":"matt.gosline@mapbox.com"},{"name":"kellyoung","email":"kelly.young@mapbox.com"},{"name":"mikelmaron","email":"mikel@groundtruth.in"},{"name":"danpat","email":"danpat@danpat.net"},{"name":"macro-shen","email":"macro.shen@mapbox.com"},{"name":"asheemmamoowala","email":"asheemm@gmail.com"},{"name":"jcsg","email":"john.sylak-glassman@mapbox.com"},{"name":"ajashton","email":"aj@mapbox.com"},{"name":"drboyer","email":"devin.boyer@mapbox.com"},{"name":"andygol","email":"andrey@mapbox.com"},{"name":"flippmoke","email":"flippmoke@gmail.com"},{"name":"ilyasaf","email":"safonov.ilya@gmail.com"},{"name":"deniskoronchik","email":"denis.koronchik@gmail.com"},{"name":"peterqliu","email":"peterqliu@gmail.com"},{"name":"rasagy","email":"rasagy@mapbox.com"},{"name":"chetangowda","email":"chethan@mapbox.com"},{"name":"upendrayadav","email":"upendra@mapbox.com"},{"name":"calfarome","email":"cesar@mapbox.com"},{"name":"ridixcr","email":"pavel@mapbox.com"},{"name":"oliikit","email":"olivia.brundage@mapbox.com"},{"name":"allierowan","email":"aileen.s.rowan@gmail.com"},{"name":"richrico","email":"richman@mapbox.com"},{"name":"dannykath","email":"danny@mapbox.com"},{"name":"samely","email":"eliane@mapbox.com"},{"name":"nikhilprabhakar","email":"nikinfour@gmail.com"},{"name":"fa7c0n","email":"gokul.ganesan@mapbox.com"},{"name":"boblannon","email":"blannon@gmail.com"},{"name":"sgillies","email":"sean@mapbox.com"},{"name":"lukasmartinelli","email":"me@lukasmartinelli.ch"},{"name":"nammala","email":"krishna@mapbox.com"},{"name":"lndsay","email":"lindsay@mapbox.com"},{"name":"anandthakker","email":"vestibule@anandthakker.net"},{"name":"chrisloer","email":"chris.loer@mapbox.com"},{"name":"kepta","email":"0o3ko0@gmail.com"},{"name":"kronick","email":"sam.kronick@mapbox.com"},{"name":"manoharuss","email":"manohar@mapbox.com"},{"name":"aparlato","email":"alex.parlato@mapbox.com"},{"name":"bsrinivasa","email":"bharata+npm@mapbox.com"},{"name":"aarthykc","email":"aarthy@mapbox.com"},{"name":"springmeyer","email":"dane@mapbox.com"},{"name":"dasulit","email":"dana.sulit@mapbox.com"},{"name":"maning","email":"emmanuel.sambale@gmail.com"},{"name":"miles-dev","email":"miles.sackler@mapbox.com"},{"name":"mourner","email":"agafonkin@gmail.com"},{"name":"chaupow","email":"hello@chau-nguyen.de"},{"name":"oxidase","email":"michael.krasnyk@gmail.com"},{"name":"rumc","email":"r.ragupathy85@gmail.com"},{"name":"vincents","email":"vincent.sarago@mapbox.com"},{"name":"tony-cj","email":"tony.chen@mapbox.com"},{"name":"planemad","email":"arun.planemad@gmail.com"},{"name":"themarex","email":"patrick@mapbox.com"},{"name":"l-r","email":"laurier@mapbox.com"},{"name":"aliceykuo","email":"alice@mapbox.com"},{"name":"ansis","email":"ansis.brammanis@gmail.com"},{"name":"oini","email":"oindrila.gupta92@gmail.com"},{"name":"virginiayung","email":"virginia@mapbox.com"},{"name":"karitotp","email":"karito@mapbox.com"},{"name":"srividyacb","email":"srividyabharadwaj26@gmail.com"},{"name":"perrygeo","email":"perry@mapbox.com"},{"name":"colleenmcginnis","email":"colleen.mcginnis@mapbox.com"},{"name":"natslaughter","email":"nat@mapbox.com"},{"name":"nickcordella","email":"nick.cordella@mapbox.com"},{"name":"benjamintd","email":"benjamin@mapbox.com"},{"name":"enf","email":"fischer@mapbox.com"},{"name":"kaibot3000","email":"kai@mapbox.com"},{"name":"pdgoodman","email":"paul@mapbox.com"},{"name":"msirenko","email":"max@mapbox.com"},{"name":"saikia.abhishek","email":"abhishek@mapbox.com"},{"name":"jothirnadh","email":"jothirnadh@mapbox.com"},{"name":"ryan-baumann","email":"ryan.baumann@mapbox.com"},{"name":"danswick","email":"dan@mapbox.com"},{"name":"lily-chai","email":"lily@mapbox.com"},{"name":"amishas157","email":"amisha@mapbox.com"},{"name":"k-mahoney","email":"kara.e.mahoney@gmail.com"},{"name":"bkowshik","email":"bhargav.kowshik@gmail.com"},{"name":"alinapaz","email":"alinapaz@gmail.com"},{"name":"dnomadb","email":"damon@mapbox.com"},{"name":"lyzidiamond","email":"lyzi@mapbox.com"},{"name":"freenerd","email":"spam@freenerd.de"},{"name":"gretacb","email":"carol@mapbox.com"},{"name":"camillacaros","email":"camilla@mapbox.com"},{"name":"samanbb","email":"saman@mapbox.com"},{"name":"bhousel","email":"bryan@mapbox.com"},{"name":"danieljh","email":"daniel+npm@trvx.org"},{"name":"katydecorah","email":"decorah@mapbox.com"},{"name":"pratikyadav","email":"pratik@mapbox.com"},{"name":"morganherlocker","email":"morgan.herlocker@gmail.com"},{"name":"jacquestardie","email":"hi@jacquestardie.org"},{"name":"mollymerp","email":"mollylloyd@gmail.com"},{"name":"jfirebaugh","email":"john.firebaugh@gmail.com"},{"name":"tcql","email":"tim.channell@gmail.com"},{"name":"rub21","email":"ruben@mapbox.com"},{"name":"kkaefer","email":"mail@kkaefer.com"},{"name":"brendanmcfarland","email":"brendan@mapbox.com"},{"name":"karenzshea","email":"karen@mapbox.com"},{"name":"davidtheclark","email":"david.dave.clark@gmail.com"},{"name":"amyleew","email":"amyleewalton@gmail.com"},{"name":"ian29","email":"ian.villeda@gmail.com"},{"name":"nickidlugash","email":"nicki@mapbox.com"},{"name":"jrpruit1","email":"jake@jakepruitt.com"},{"name":"mcwhittemore","email":"mcwhittemore@gmail.com"},{"name":"isiyu","email":"siyu.song@gmail.com"},{"name":"ghoshkaj","email":"ghoshkaj@gmail.com"},{"name":"alulsh","email":"ulsh@mapbox.com"},{"name":"emilymcafee","email":"emily@mapbox.com"},{"name":"mapsam","email":"sam@mapbox.com"},{"name":"lxbarth","email":"alex@mapbox.com"},{"name":"willwhite","email":"will@mapbox.com"},{"name":"batpad","email":"sanjay@mapbox.com"},{"name":"arunasank","email":"aruna@mapbox.com"},{"name":"mattficke","email":"matt@mattficke.com"},{"name":"apendleton","email":"andrew@mapbox.com"},{"name":"ingalls","email":"nicholas.ingalls@gmail.com"},{"name":"sbma44","email":"tlee@mapbox.com"},{"name":"emilymdubois","email":"dubois@mapbox.com"},{"name":"yhahn","email":"young@mapbox.com"},{"name":"ianshward","email":"ian@mapbox.com"},{"name":"miccolis","email":"jeff@miccolis.net"},{"name":"rclark","email":"ryan.clark.j@gmail.com"},{"name":"lbud","email":"lauren@mapbox.com"},{"name":"bsudekum","email":"bobby@mapbox.com"},{"name":"tristen","email":"tristen.brown@gmail.com"},{"name":"mapbox-admin","email":"accounts@mapbox.com"}],"homepage":"https://github.com/mapbox/cheap-ruler#readme","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"dist":{"shasum":"1c47ece27fc14bc95e817e16d49ceb5009a7e987","tarball":"https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-2.5.1.tgz","integrity":"sha512-5x22zeBDPIXdDDiqIsC8tkOY1HEBD6FCRCfsvgwNg9yelClCpvfNGk0L2MotxTDEL4aoXOUUgdm3rPOBSLF+jA==","signatures":[{"sig":"MEQCIAlD7RURf46qBwxRld7u9uQeL+SEyn3UNVLFTbCEZyrjAiALJEV++LT7UMCqIFHeZ6UhVtwoihUb8uU9Xo2x1ujNWQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","files":["index.d.ts","cheap-ruler.js","cheap-ruler.min.js"],"types":"index.d.ts","unpkg":"cheap-ruler.js","gitHead":"2ee298e50fd38ed280a8b515aa9660ed5ef4557e","scripts":{"cov":"nyc tape test/test.js","test":"tape test/test.js","build":"browserify index.js -s cheapRuler > cheap-ruler.js","types":"tsc test/types.ts && rm test/types.js","prepare":"npm run build && npm run build-min","pretest":"eslint index.js bench test/*.js && npm run types","build-min":"browserify index.js -s cheapRuler | uglifyjs -c -m > cheap-ruler.min.js"},"_npmUser":{"name":"mourner","email":"agafonkin@gmail.com"},"jsdelivr":"cheap-ruler.js","repository":{"url":"git+https://github.com/mapbox/cheap-ruler.git","type":"git"},"_npmVersion":"5.5.1","description":"A collection of fast approximations to common geographic measurements.","directories":{},"_nodeVersion":"8.9.1","dependencies":{},"eslintConfig":{"extends":"mourner"},"devDependencies":{"nyc":"^11.3.0","tape":"^4.8.0","eslint":"^4.12.0","benchmark":"^2.1.4","uglify-js":"^3.2.0","@turf/turf":"^5.0.4","browserify":"^14.5.0","typescript":"^2.6.2","node-vincenty":"0.0.6","eslint-config-mourner":"^2.0.3"},"_npmOperationalInternal":{"tmp":"tmp/cheap-ruler-2.5.1.tgz_1511865395844_0.6789416603278369","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"cheap-ruler","version":"3.0.0","keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","_id":"cheap-ruler@3.0.0","maintainers":[{"name":"mapbox-admin","email":"accounts@mapbox.com"},{"name":"mapbox-machine-user","email":"accounts+npm-mapbox-machine-user@mapbox.com"},{"name":"mapbox-npm","email":"accounts+npmjs@mapbox.com"},{"name":"mapbox-npm-01","email":"accounts+npmjs-01@mapbox.com"},{"name":"mapbox-npm-02","email":"accounts+npmjs-02@mapbox.com"},{"name":"mapbox-npm-03","email":"accounts+npmjs-03@mapbox.com"},{"name":"mapbox-npm-04","email":"accounts+npmjs-04@mapbox.com"},{"name":"mapbox-npm-05","email":"accounts+npmjs-05@mapbox.com"},{"name":"mapbox-npm-06","email":"accounts+npmjs-06@mapbox.com"},{"name":"mapbox-npm-07","email":"accounts+npmjs-07@mapbox.com"},{"name":"mapbox-npm-08","email":"accounts+npmjs-08@mapbox.com"},{"name":"mapbox-npm-09","email":"accounts+npmjs-09@mapbox.com"},{"name":"mapbox-npm-advanced-actions","email":"accounts+npmjs-advanced-actions@mapbox.com"},{"name":"mapbox-npm-ci","email":"accounts+npmjs-npm-ci@mapbox.com"},{"name":"mourner","email":"agafonkin@gmail.com"}],"homepage":"https://github.com/mapbox/cheap-ruler#readme","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"dist":{"shasum":"4212d04db5b5011cb85d4dbcf3f08c5828ff7a9b","tarball":"https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-3.0.0.tgz","fileCount":5,"integrity":"sha512-jggrQEck4Jw4YJ0EJbYl36pMKe2IGvUJTG6U41Wh4jODKx3D5KmjPuQTaWOWDAor3dz3h9UxEYkYCv4fj/pKFA==","signatures":[{"sig":"MEUCIQC0qqTsWipKN+YOHWfwBceLs8SFZ4TPfMm7S+TIwq7aJAIgYVwhXo/P7HOEW4QdY9G7NTbaS8u2qmtsIvXwdgZXNEY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"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"},"main":"cheap-ruler.js","types":"cheap-ruler.d.ts","unpkg":"cheap-ruler.min.js","module":"index.js","gitHead":"5cd245d815159db614bc63c7af2fbe74a77d465f","scripts":{"cov":"nyc tape test/test.js","test":"tape -r esm test/test.js","build":"rollup -c","types":"ts-node test/types.ts","pretest":"eslint index.js bench test/*.js","posttest":"npm run build && npm run types","prepublishOnly":"npm test"},"_npmUser":{"name":"mourner","email":"agafonkin@gmail.com"},"jsdelivr":"cheap-ruler.min.js","repository":{"url":"git+https://github.com/mapbox/cheap-ruler.git","type":"git"},"_npmVersion":"6.14.4","description":"A collection of fast approximations to common geographic measurements.","directories":{},"_nodeVersion":"10.20.1","dependencies":{},"eslintConfig":{"extends":"mourner"},"_hasShrinkwrap":false,"devDependencies":{"esm":"^3.2.25","nyc":"^15.0.1","tape":"^5.0.0","eslint":"^7.0.0","rollup":"^2.10.2","ts-node":"^8.10.1","benchmark":"^2.1.4","@turf/turf":"^5.1.6","typescript":"^3.9.2","node-vincenty":"0.0.6","@rollup/plugin-buble":"^0.21.3","rollup-plugin-terser":"^5.3.0","eslint-config-mourner":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cheap-ruler_3.0.0_1589808985085_0.05810379956077516","host":"s3://npm-registry-packages"}},"3.0.1":{"name":"cheap-ruler","version":"3.0.1","keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","_id":"cheap-ruler@3.0.1","maintainers":[{"name":"mapbox-admin","email":"accounts@mapbox.com"},{"name":"mapbox-machine-user","email":"accounts+npm-mapbox-machine-user@mapbox.com"},{"name":"mapbox-npm","email":"accounts+npmjs@mapbox.com"},{"name":"mapbox-npm-01","email":"accounts+npmjs-01@mapbox.com"},{"name":"mapbox-npm-02","email":"accounts+npmjs-02@mapbox.com"},{"name":"mapbox-npm-03","email":"accounts+npmjs-03@mapbox.com"},{"name":"mapbox-npm-04","email":"accounts+npmjs-04@mapbox.com"},{"name":"mapbox-npm-05","email":"accounts+npmjs-05@mapbox.com"},{"name":"mapbox-npm-06","email":"accounts+npmjs-06@mapbox.com"},{"name":"mapbox-npm-07","email":"accounts+npmjs-07@mapbox.com"},{"name":"mapbox-npm-08","email":"accounts+npmjs-08@mapbox.com"},{"name":"mapbox-npm-09","email":"accounts+npmjs-09@mapbox.com"},{"name":"mapbox-npm-advanced-actions","email":"accounts+npmjs-advanced-actions@mapbox.com"},{"name":"mapbox-npm-ci","email":"accounts+npmjs-npm-ci@mapbox.com"},{"name":"mourner","email":"agafonkin@gmail.com"}],"homepage":"https://github.com/mapbox/cheap-ruler#readme","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"dist":{"shasum":"3df3bd6fe664d8cab9e9e826bba24d7271e7645a","tarball":"https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-3.0.1.tgz","fileCount":7,"integrity":"sha512-bmBKGkNKcwCpltGzfMXZMrFE06SG8dgSv96W39Mk+um7zbNTQNumKl5LBwFC0gbffy8Jnf0+SDHsOqpDYJxYow==","signatures":[{"sig":"MEYCIQDlSRh7P3D064+3ngOg60yq6SJJeyrwkbDzJYN5olMNEAIhAPCxChjlql2lwWSndqOoJ7e6Vuo9LGA0ro+WTT4PBJI0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"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"},"main":"cheap-ruler.js","types":"cheap-ruler.d.ts","unpkg":"cheap-ruler.min.js","module":"index.js","gitHead":"6cbe63df0cf2034d356d41a02e4cf97c91606d05","scripts":{"cov":"nyc tape test/test.js","test":"tape -r esm test/test.js","build":"rollup -c","types":"ts-node test/types.ts","pretest":"eslint index.js bench test/*.js","posttest":"npm run build && npm run types","prepublishOnly":"npm test"},"_npmUser":{"name":"mourner","email":"agafonkin@gmail.com"},"jsdelivr":"cheap-ruler.min.js","repository":{"url":"git+https://github.com/mapbox/cheap-ruler.git","type":"git"},"_npmVersion":"6.14.4","description":"A collection of fast approximations to common geographic measurements.","directories":{},"_nodeVersion":"10.20.1","dependencies":{},"eslintConfig":{"extends":"mourner"},"_hasShrinkwrap":false,"devDependencies":{"esm":"^3.2.25","nyc":"^15.0.1","tape":"^5.0.0","eslint":"^7.0.0","rollup":"^2.10.2","ts-node":"^8.10.1","benchmark":"^2.1.4","@turf/turf":"^5.1.6","typescript":"^3.9.2","node-vincenty":"0.0.6","@rollup/plugin-buble":"^0.21.3","rollup-plugin-terser":"^5.3.0","eslint-config-mourner":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cheap-ruler_3.0.1_1589809140440_0.1587499328905808","host":"s3://npm-registry-packages"}},"3.0.2":{"name":"cheap-ruler","version":"3.0.2","keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","_id":"cheap-ruler@3.0.2","maintainers":[{"name":"mapbox-npm-01","email":"accounts+npmjs-01@mapbox.com"},{"name":"mapbox-npm-02","email":"accounts+npmjs-02@mapbox.com"},{"name":"mapbox-npm-07","email":"accounts+npmjs-07@mapbox.com"},{"name":"mapbox-npm-03","email":"accounts+npmjs-03@mapbox.com"},{"name":"mapbox-npm-04","email":"accounts+npmjs-04@mapbox.com"},{"name":"mapbox-npm-09","email":"accounts+npmjs-09@mapbox.com"},{"name":"mapbox-npm-05","email":"accounts+npmjs-05@mapbox.com"},{"name":"mapbox-npm-06","email":"accounts+npmjs-06@mapbox.com"},{"name":"mapbox-npm-08","email":"accounts+npmjs-08@mapbox.com"},{"name":"mapbox-npm-advanced-actions","email":"accounts+npmjs-advanced-actions@mapbox.com"},{"name":"mapbox-npm-ci","email":"accounts+npmjs-npm-ci@mapbox.com"},{"name":"mapbox-npm","email":"accounts+npmjs@mapbox.com"},{"name":"mapbox-admin","email":"accounts@mapbox.com"},{"name":"mapbox-machine-user","email":"accounts+npm-mapbox-machine-user@mapbox.com"},{"name":"mourner","email":"agafonkin@gmail.com"}],"homepage":"https://github.com/mapbox/cheap-ruler#readme","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"dist":{"shasum":"60d2b3a0cb77a420472c8c5bb8f2c320fba4bb87","tarball":"https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-3.0.2.tgz","fileCount":7,"integrity":"sha512-02T332h1/HTN6cDSufLP8x4JzDs2+VC+8qZ/N0kWIVPyc2xUkWwWh3B2fJxR7raXkL4Mq7k554mfuM9ofv/vGg==","signatures":[{"sig":"MEUCIHBLbaV/czMRGbv4X4ec0k9zCvZZ1wo3i8T1cWNOc9HuAiEA/+DqOSdL8SzQgPXDXr90UWJxo0wbTPEb5knpLjxdLrA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"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"},"main":"cheap-ruler.js","types":"cheap-ruler.d.ts","unpkg":"cheap-ruler.min.js","module":"index.js","gitHead":"f469d58be8a6f46ad8c571a7544edbe2ebd942d7","scripts":{"cov":"nyc tape test/test.js","test":"tape -r esm test/test.js","build":"rollup -c","types":"ts-node test/types.ts","pretest":"eslint index.js bench test/*.js","posttest":"npm run build && npm run types","prepublishOnly":"npm test"},"_npmUser":{"name":"mourner","email":"agafonkin@gmail.com"},"jsdelivr":"cheap-ruler.min.js","repository":{"url":"git+https://github.com/mapbox/cheap-ruler.git","type":"git"},"_npmVersion":"8.5.5","description":"A collection of fast approximations to common geographic measurements.","directories":{},"_nodeVersion":"14.19.1","dependencies":{},"eslintConfig":{"extends":"mourner"},"_hasShrinkwrap":false,"devDependencies":{"esm":"^3.2.25","nyc":"^15.1.0","tape":"^5.3.2","eslint":"^8.2.0","rollup":"^2.60.0","ts-node":"^10.4.0","benchmark":"^2.1.4","@turf/turf":"^6.5.0","typescript":"^4.4.4","node-vincenty":"0.0.6","@rollup/plugin-buble":"^0.21.3","rollup-plugin-terser":"^7.0.2","eslint-config-mourner":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cheap-ruler_3.0.2_1648628198497_0.8380411940419279","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"cheap-ruler","version":"4.0.0","keywords":["geospatial","measurement","approximation","distance"],"author":{"name":"Vladimir Agafonkin"},"license":"ISC","_id":"cheap-ruler@4.0.0","homepage":"https://github.com/mapbox/cheap-ruler#readme","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"dist":{"shasum":"bdc984de7e0e3f748bdfd2dbe23ec6b9dc820a09","tarball":"https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-4.0.0.tgz","fileCount":6,"integrity":"sha512-0BJa8f4t141BYKQyn9NSQt1PguFQXMXwZiA5shfoaBYHAb2fFk2RAX+tiWMoQU+Agtzt3mdt0JtuyshAXqZ+Vw==","signatures":[{"sig":"MEYCIQDZDp27avfOQ6GsnJ0GWueTcCbz5ycFELmdxNdE+pFd0AIhAO6qDPat8Es5oQXvxoSgCNTMYo8RCJtbUQYd/Nu4+ui6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":48159},"main":"cheap-ruler.js","type":"module","types":"index.d.ts","module":"index.js","exports":"./index.js","gitHead":"a34db1596c215c3ad2d34af37e179b8cadf08445","scripts":{"cov":"node --test --experimental-test-coverage test/test.js","test":"tsc && node --test test/test.js","build":"rollup index.js -o cheap-ruler.js -n CheapRuler -f umd","pretest":"eslint index.js bench test/*.js","prepublishOnly":"npm test && npm run build"},"_npmUser":{"name":"mourner","email":"agafonkin@gmail.com"},"repository":{"url":"git+https://github.com/mapbox/cheap-ruler.git","type":"git"},"_npmVersion":"10.8.0","description":"A collection of fast approximations to common geographic measurements.","directories":{},"_nodeVersion":"20.14.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.5.0","rollup":"^4.18.0","benchmark":"^2.1.4","@turf/turf":"^7.0.0","typescript":"^5.5.2","node-vincenty":"0.0.6","eslint-config-mourner":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cheap-ruler_4.0.0_1719414317092_0.483373562317686","host":"s3://npm-registry-packages"}},"4.1.0":{"name":"cheap-ruler","version":"4.1.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.3.5","benchmark":"^2.1.4","eslint":"^10.4.1","eslint-config-mourner":"^5.0.1","node-vincenty":"0.0.6","rollup":"^4.61.1","typescript":"^6.0.3"},"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"],"allowScripts":{"fsevents@2.3.3":true},"gitHead":"988c8f4f14809fc40f4c219dcde29fc0daf4d0a7","_id":"cheap-ruler@4.1.0","bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"homepage":"https://github.com/mapbox/cheap-ruler#readme","_nodeVersion":"24.16.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-pmcgaGHAxfYtKr4BtSaM/+/3vvQJJLkvQibEdO2eb5eiHrRgEAd43M2tpBGi4eIX32kXyvPLQVT23qNnuFaa8w==","shasum":"04544d1fce82e5268ab3b2127b7d45b4c3d907bb","tarball":"https://registry.npmjs.org/cheap-ruler/-/cheap-ruler-4.1.0.tgz","fileCount":6,"unpackedSize":51599,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCN7RiZ2EVrgy3gWl+xQJOfpqI2ElDo3liZTGpE/K+e9gIgYkAMfgyO/qAw6nhb244DoHj14r73rFZpmoN51TVoxEo="}]},"_npmUser":{"name":"mbx-npm-06-production","email":"yannick.meeus+npm+prod+06@mapbox.com"},"directories":{},"maintainers":[{"name":"mapbox-npm-01","email":"accounts+npmjs-01@mapbox.com"},{"name":"mapbox-npm-02","email":"accounts+npmjs-02@mapbox.com"},{"name":"mapbox-npm-07","email":"accounts+npmjs-07@mapbox.com"},{"name":"mapbox-npm-03","email":"accounts+npmjs-03@mapbox.com"},{"name":"mapbox-npm-04","email":"accounts+npmjs-04@mapbox.com"},{"name":"mapbox-npm-09","email":"accounts+npmjs-09@mapbox.com"},{"name":"mapbox-npm-05","email":"accounts+npmjs-05@mapbox.com"},{"name":"mapbox-npm-06","email":"accounts+npmjs-06@mapbox.com"},{"name":"mapbox-npm-08","email":"accounts+npmjs-08@mapbox.com"},{"name":"mapbox-npm-advanced-actions","email":"accounts+npmjs-advanced-actions@mapbox.com"},{"name":"mapbox-npm-ci","email":"accounts+npmjs-npm-ci@mapbox.com"},{"name":"mapbox-npm","email":"accounts+npmjs@mapbox.com"},{"name":"mapbox-admin","email":"accounts@mapbox.com"},{"name":"mapbox-machine-user","email":"accounts+npm-mapbox-machine-user@mapbox.com"},{"name":"mbx-npm-ci-staging","email":"yannick.meeus+npm+staging+ci@mapbox.com"},{"name":"mbx-npm-ci-production","email":"yannick.meeus+npm+production+ci@mapbox.com"},{"name":"mbx-npm-01-production","email":"yannick.meeus+npm+prod+01@mapbox.com"},{"name":"mbx-npm-02-production","email":"yannick.meeus+npm+prod+02@mapbox.com"},{"name":"mbx-npm-03-production","email":"yannick.meeus+npm+prod+03@mapbox.com"},{"name":"mbx-npm-04-production","email":"yannick.meeus+npm+prod+04@mapbox.com"},{"name":"mbx-npm-05-production","email":"yannick.meeus+npm+prod+05@mapbox.com"},{"name":"mbx-npm-06-production","email":"yannick.meeus+npm+prod+06@mapbox.com"},{"name":"mbx-npm-07-production","email":"yannick.meeus+npm+prod+07@mapbox.com"},{"name":"mbx-npm-08-production","email":"yannick.meeus+npm+prod+08@mapbox.com"},{"name":"mbx-npm-09-production","email":"yannick.meeus+npm+prod+09@mapbox.com"},{"name":"mbx-npm-02-staging","email":"yannick.meeus@mapbox.com"},{"name":"mbx-npm-advanced-actions-staging","email":"yannick.meeus+npm+staging+advanced+actions@mapbox.com"},{"name":"mbx-npm-advanced-actions-production","email":"yannick.meeus+npm+prod+advanced+actions@mapbox.com"},{"name":"mourner","email":"agafonkin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cheap-ruler_4.1.0_1781078155699_0.2850267642016562"},"_hasShrinkwrap":false}},"time":{"created":"2016-04-15T16:39:26.942Z","modified":"2026-06-10T07:55:56.299Z","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","4.1.0":"2026-06-10T07:55:55.834Z"},"bugs":{"url":"https://github.com/mapbox/cheap-ruler/issues"},"author":{"name":"Vladimir Agafonkin"},"license":"ISC","homepage":"https://github.com/mapbox/cheap-ruler#readme","keywords":["geospatial","measurement","approximation","distance"],"repository":{"type":"git","url":"git+https://github.com/mapbox/cheap-ruler.git"},"description":"A collection of fast approximations to common geographic measurements.","maintainers":[{"name":"mapbox-npm-01","email":"accounts+npmjs-01@mapbox.com"},{"name":"mapbox-npm-02","email":"accounts+npmjs-02@mapbox.com"},{"name":"mapbox-npm-07","email":"accounts+npmjs-07@mapbox.com"},{"name":"mapbox-npm-03","email":"accounts+npmjs-03@mapbox.com"},{"name":"mapbox-npm-04","email":"accounts+npmjs-04@mapbox.com"},{"name":"mapbox-npm-09","email":"accounts+npmjs-09@mapbox.com"},{"name":"mapbox-npm-05","email":"accounts+npmjs-05@mapbox.com"},{"name":"mapbox-npm-06","email":"accounts+npmjs-06@mapbox.com"},{"name":"mapbox-npm-08","email":"accounts+npmjs-08@mapbox.com"},{"name":"mapbox-npm-advanced-actions","email":"accounts+npmjs-advanced-actions@mapbox.com"},{"name":"mapbox-npm-ci","email":"accounts+npmjs-npm-ci@mapbox.com"},{"name":"mapbox-npm","email":"accounts+npmjs@mapbox.com"},{"name":"mapbox-admin","email":"accounts@mapbox.com"},{"name":"mapbox-machine-user","email":"accounts+npm-mapbox-machine-user@mapbox.com"},{"name":"mbx-npm-ci-staging","email":"yannick.meeus+npm+staging+ci@mapbox.com"},{"name":"mbx-npm-ci-production","email":"yannick.meeus+npm+production+ci@mapbox.com"},{"name":"mbx-npm-01-production","email":"yannick.meeus+npm+prod+01@mapbox.com"},{"name":"mbx-npm-02-production","email":"yannick.meeus+npm+prod+02@mapbox.com"},{"name":"mbx-npm-03-production","email":"yannick.meeus+npm+prod+03@mapbox.com"},{"name":"mbx-npm-04-production","email":"yannick.meeus+npm+prod+04@mapbox.com"},{"name":"mbx-npm-05-production","email":"yannick.meeus+npm+prod+05@mapbox.com"},{"name":"mbx-npm-06-production","email":"yannick.meeus+npm+prod+06@mapbox.com"},{"name":"mbx-npm-07-production","email":"yannick.meeus+npm+prod+07@mapbox.com"},{"name":"mbx-npm-08-production","email":"yannick.meeus+npm+prod+08@mapbox.com"},{"name":"mbx-npm-09-production","email":"yannick.meeus+npm+prod+09@mapbox.com"},{"name":"mbx-npm-02-staging","email":"yannick.meeus@mapbox.com"},{"name":"mbx-npm-advanced-actions-staging","email":"yannick.meeus+npm+staging+advanced+actions@mapbox.com"},{"name":"mbx-npm-advanced-actions-production","email":"yannick.meeus+npm+prod+advanced+actions@mapbox.com"},{"name":"mourner","email":"agafonkin@gmail.com"}],"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 [Vincenty's formulae](https://en.wikipedia.org/wiki/Vincenty%27s_formulae),\nand usually much less for shorter distances.\n\n## Usage\n\n```js\nconst ruler = new CheapRuler(35.05, 'miles'); // calculations around latitude 35\n// ...\nconst distance = ruler.distance([30.51, 50.32], [30.52, 50.312]);\nconst lineLength = ruler.lineDistance(line.geometry.coordinates);\nconst 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`, `metres`, `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, dist}`, 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, `t` is a parameter from 0 to 1 that indicates\nwhere the closest point is on that segment, and `dist` is the distance from the point to the line.\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\n","readmeFilename":"README.md"}