DefinitelyTyped/types/tilebelt/index.d.ts
Arne Schubert 216ea719fa GeoJSON: Enhance with generic properties (#20932)
* Make properties optional generic

* Write tests for generic usage of gGeoJSON feature properties

* Apply layout like recommend in the tslint default rule-set.

* double quotes
* 4 spaces indent (no tabs!)

* Remove jsdoc typings and force typescript version 2.3 for sub type-definitions of geojson

* apply change of andy-ms in PR #20933

* remove empty comments and set typescript version to 2.3 to fix linting errors

* Add myself to the list of authors

* Set TypeScript version to 2.3 for packages depending on geojson
2017-11-01 08:40:26 -07:00

190 lines
5.4 KiB
TypeScript

// Type definitions for tilebelt 1.0.1
// Project: https://github.com/mapbox/tilebelt
// Definitions by: Denis Carriere <https://github.com/DenisCarriere>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
/// <reference types="geojson" />
declare const tilebelt: tilebelt.TilebeltStatic;
declare namespace tilebelt {
interface TilebeltStatic {
/**
* Get a geojson representation of a tile
*
* @name tileToGeoJSON
* @param {Array<number>} tile
* @returns {Feature<Polygon>}
* @example
* var poly = tileToGeoJSON([5, 10, 10])
* //=poly
*/
tileToGeoJSON(tile: Array<number>): GeoJSON.Feature<GeoJSON.Polygon>
/**
* Get the bbox of a tile
*
* @name tileToBBOX
* @param {Array<number>} tile
* @returns {Array<number>} bbox
* @example
* var bbox = tileToBBOX([5, 10, 10])
* //=bbox
*/
tileToBBOX(tile: Array<number>): Array<number>
/**
* Get the tile for a point at a specified zoom level
*
* @name pointToTile
* @param {number} lon
* @param {number} lat
* @param {number} z
* @returns {Array<number>} tile
* @example
* var tile = pointToTile(1, 1, 20)
* //=tile
*/
pointToTile(lon: number, lat: number, z: number): Array<number>
/**
* Get the 4 tiles one zoom level higher
*
* @name getChildren
* @param {Array<number>} tile
* @returns {Array<Array<number>>} tiles
* @example
* var tiles = getChildren([5, 10, 10])
* //=tiles
*/
getChildren(tile: Array<number>): Array<Array<number>>
/**
* Get the tile one zoom level lower
*
* @name getParent
* @param {Array<number>} tile
* @returns {Array<number>} tile
* @example
* var tile = getParent([5, 10, 10])
* //=tile
*/
getParent(tile: Array<number>): Array<number>
/**
* Get the 3 sibling tiles for a tile
*
* @name getSiblings
* @param {Array<number>} tile
* @returns {Array<Array<number>>} tiles
* @example
* var tiles = getSiblings([5, 10, 10])
* //=tiles
*/
getSiblings(tile: Array<number>): Array<Array<number>>
/**
* Check to see if an array of tiles contains a tiles siblings
*
* @name hasSiblings
* @param {Array<number>} tile
* @param {Array<Array<number>>} tiles
* @returns {boolean}
* @example
* var tiles = [
* [0, 0, 5],
* [0, 1, 5],
* [1, 1, 5],
* [1, 0, 5]
* ]
* hasSiblings([0, 0, 5], tiles)
* //=boolean
*/
hasSiblings(tile: Array<number>, tiles: Array<Array<number>>): boolean
/**
* Check to see if an array of tiles contains a particular tile
*
* @name hasTile
* @param {Array<Array<number>>} tiles
* @param {Array<number>} tile
* @returns {boolean}
* @example
* var tiles = [
* [0, 0, 5],
* [0, 1, 5],
* [1, 1, 5],
* [1, 0, 5]
* ]
* hasTile(tiles, [0, 0, 5])
* //=boolean
*/
hasTile(tiles: Array<Array<number>>, tile: Array<number>): boolean
/**
* Check to see if two tiles are the same
*
* @name tilesEqual
* @param {Array<number>} tile1
* @param {Array<number>} tile2
* @returns {boolean}
* @example
* tilesEqual([0, 1, 5], [0, 0, 5])
* //=boolean
*/
tilesEqual(tile1: Array<number>, tile2: Array<number>): boolean
/**
* Get the quadkey for a tile
*
* @name tileToQuadkey
* @param {Array<number>} tile
* @returns {string} quadkey
* @example
* var quadkey = tileToQuadkey([0, 1, 5])
* //=quadkey
*/
tileToQuadkey(tile: Array<number>): string
/**
* Get the tile for a quadkey
*
* @name quadkeyToTile
* @param {string} quadkey
* @returns {Array<number>} tile
* @example
* var tile = quadkeyToTile('00001033')
* //=tile
*/
quadkeyToTile(quadkey: string): Array<number>
/**
* Get the smallest tile to cover a bbox
*
* @name bboxToTile
* @param {Array<number>} bbox
* @returns {Array<number>} tile
* @example
* var tile = bboxToTile([ -178, 84, -177, 85 ])
* //=tile
*/
bboxToTile(bbox: Array<number>): Array<number>
/**
* Get the precise fractional tile location for a point at a zoom level
*
* @name pointToTileFraction
* @param {number} lon
* @param {number} lat
* @param {number} z
* @returns {Array<number>} tile fraction
* var tile = pointToTileFraction(30.5, 50.5, 15)
* //=tile
*/
pointToTileFraction(lon: number, lat: number, z: number): Array<number>
}
}
declare module "tilebelt" {
export = tilebelt
}