diff --git a/polylabel/polylabel-tests.ts b/polylabel/polylabel-tests.ts new file mode 100644 index 0000000000..9e23d20d38 --- /dev/null +++ b/polylabel/polylabel-tests.ts @@ -0,0 +1,10 @@ +/// +/// +import polylabel = require('polylabel'); + +const polygon = [[[3116,3071],[3118,3068],[3108,3102],[3751,927]]] +let p: number[] +p = polylabel(polygon) +p = polylabel(polygon, 1.0) +p = polylabel(polygon, 1.0, true) +p = polylabel(polygon, 1.0, false) diff --git a/polylabel/polylabel.d.ts b/polylabel/polylabel.d.ts new file mode 100644 index 0000000000..21f50d1b41 --- /dev/null +++ b/polylabel/polylabel.d.ts @@ -0,0 +1,33 @@ +// Type definitions for polylabel 1.0.0 +// Project: https://github.com/mapbox/polylabel +// Definitions by: Denis Carriere +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/** + * polylabel + * + * A fast algorithm for finding polygon pole of inaccessibility, the most distant internal point from + * the polygon outline (not to be confused with centroid), implemented as a JavaScript library. + * Useful for optimal placement of a text label on a polygon. + * It's an iterative grid algorithm, inspired by paper by Garcia-Castellanos & Lombardo, 2007. + * Unlike the one in the paper, this algorithm: + * + * - guarantees finding global optimum within the given precision + * - is many times faster (10-40x) + */ +declare module 'polylabel' { + /** + * Polylabel returns the pole of inaccessibility coordinate in [x, y] format. + * + * @name polylabel + * @function + * @param {Array} polygon - Given polygon coordinates in GeoJSON-like format + * @param {number} precision - Precision (1.0 by default) + * @param {boolean} debug - Debugging for Console + * @return {Array} + * @example + * var p = polylabel(polygon, 1.0); + */ + function polylabel (polygon: number[][][], precision?: number, debug?: boolean): number[]; + export = polylabel; +}