@allmaps/stdlib
Advanced tools
Comparing version 1.0.0-beta.26 to 1.0.0-beta.27
@@ -14,3 +14,5 @@ import type { Point, Polygon, Geometry, Line, Rectangle, Bbox, Size, GeojsonGeometry } from '@allmaps/types'; | ||
export declare function bboxToSize(bbox: Bbox): Size; | ||
export declare function rectangleToSize(rectangle: Rectangle): Size; | ||
export declare function sizesToScale(size0: Size, size1: Size): number; | ||
export declare function bboxesToScale(bbox0: Bbox, bbox1: Bbox): number; | ||
export declare function rectanglesToScale(rectangle0: Rectangle, rectangle1: Rectangle): number; |
@@ -60,2 +60,3 @@ import { isGeojsonGeometry, convertGeojsonGeometryToGeometry } from './geojson.js'; | ||
// Transform | ||
// Returns a rectangle with four points, starting from lower left and going anti-clockwise. | ||
export function bboxToRectangle(bbox) { | ||
@@ -90,7 +91,16 @@ return [ | ||
} | ||
// Approximate results, for rectangles coming from bboxes. A more precise result would require a minimal-covering-rectangle algorithm | ||
export function rectangleToSize(rectangle) { | ||
return [ | ||
0.5 * | ||
(distance(rectangle[0], rectangle[1]) + | ||
distance(rectangle[2], rectangle[3])), | ||
0.5 * | ||
(distance(rectangle[1], rectangle[2]) + | ||
distance(rectangle[3], rectangle[0])) | ||
]; | ||
} | ||
// Scales | ||
export function sizesToScale(size0, size1) { | ||
const scaleMin = Math.min(...size0) / Math.min(...size1); | ||
const scaleMax = Math.max(...size0) / Math.max(...size1); | ||
return Math.min(scaleMin, scaleMax); | ||
return Math.sqrt((size0[0] * size0[1]) / (size1[0] * size1[1])); | ||
} | ||
@@ -100,1 +110,4 @@ export function bboxesToScale(bbox0, bbox1) { | ||
} | ||
export function rectanglesToScale(rectangle0, rectangle1) { | ||
return sizesToScale(rectangleToSize(rectangle0), rectangleToSize(rectangle1)); | ||
} |
{ | ||
"name": "@allmaps/stdlib", | ||
"version": "1.0.0-beta.26", | ||
"version": "1.0.0-beta.27", | ||
"contributors": [ | ||
@@ -71,3 +71,3 @@ { | ||
}, | ||
"gitHead": "60322ac9345b16940b25ae912e0a3aeb69c6af9e" | ||
"gitHead": "c3a51a2359687465691b99b8c21fb9c20289064c" | ||
} |
48878
1254