@turf/helpers
Advanced tools
Comparing version 4.6.0 to 4.7.0
@@ -1,3 +0,4 @@ | ||
/// <reference types="geojson" /> | ||
/// <reference types='geojson' /> | ||
export type Id = string|number | ||
export type Points = GeoJSON.FeatureCollection<GeoJSON.Point>; | ||
@@ -20,3 +21,3 @@ export type Point = GeoJSON.Feature<GeoJSON.Point>; | ||
export type Feature<Geom extends GeometryObject> = GeoJSON.Feature<Geom>; | ||
export type Units = "miles" | "nauticalmiles" | "degrees" | "radians" | "inches" | "yards" | "meters" | "metres" | "kilometers" | "kilometres"; | ||
export type Units = 'miles' | 'nauticalmiles' | 'degrees' | 'radians' | 'inches' | 'yards' | 'meters' | 'metres' | 'kilometers' | 'kilometres'; | ||
export type BBox = [number, number, number, number]; | ||
@@ -33,4 +34,4 @@ export type GeometryObject = GeoJSON.GeometryObject; | ||
export interface FeatureCollection { | ||
<Geom extends Geoms>(features: Feature<Geom>[], bbox?: BBox): Features<Geom>; | ||
(features: Feature<any>[], bbox?: BBox): Features<any>; | ||
<Geom extends Geoms>(features: Feature<Geom>[], bbox?: BBox, id?: Id): Features<Geom>; | ||
(features: Feature<any>[], bbox?: BBox, id?: Id): Features<any>; | ||
} | ||
@@ -45,3 +46,3 @@ | ||
*/ | ||
export function feature<Geom extends GeometryObject>(geometry: Geom, properties?: Properties, bbox?: BBox, id?: string|number): Feature<Geom>; | ||
export function feature<Geom extends GeometryObject>(geometry: Geom, properties?: Properties, bbox?: BBox, id?: Id): Feature<Geom>; | ||
@@ -56,3 +57,3 @@ /** | ||
*/ | ||
export function point(coordinates: Position, properties?: Properties, bbox?: BBox, id?: string|number): Point; | ||
export function point(coordinates: Position, properties?: Properties, bbox?: BBox, id?: Id): Point; | ||
@@ -62,3 +63,3 @@ /** | ||
*/ | ||
export function polygon(coordinates: Position[][], properties?: Properties, bbox?: BBox, id?: string|number): Polygon; | ||
export function polygon(coordinates: Position[][], properties?: Properties, bbox?: BBox, id?: Id): Polygon; | ||
@@ -68,3 +69,3 @@ /** | ||
*/ | ||
export function lineString(coordinates: Position[], properties?: Properties, bbox?: BBox, id?: string|number): LineString; | ||
export function lineString(coordinates: Position[], properties?: Properties, bbox?: BBox, id?: Id): LineString; | ||
@@ -79,3 +80,3 @@ /** | ||
*/ | ||
export function multiLineString(coordinates: Position[][], properties?: Properties, bbox?: BBox, id?: string|number): MultiLineString; | ||
export function multiLineString(coordinates: Position[][], properties?: Properties, bbox?: BBox, id?: Id): MultiLineString; | ||
@@ -85,3 +86,3 @@ /** | ||
*/ | ||
export function multiPoint(coordinates: Position[], properties?: Properties, bbox?: BBox, id?: string|number): MultiPoint; | ||
export function multiPoint(coordinates: Position[], properties?: Properties, bbox?: BBox, id?: Id): MultiPoint; | ||
@@ -91,3 +92,3 @@ /** | ||
*/ | ||
export function multiPolygon(coordinates: Position[][][], properties?: Properties, bbox?: BBox, id?: string|number): MultiPolygon; | ||
export function multiPolygon(coordinates: Position[][][], properties?: Properties, bbox?: BBox, id?: Id): MultiPolygon; | ||
@@ -97,3 +98,3 @@ /** | ||
*/ | ||
export function geometryCollection(geometries: GeometryObject[], properties?: Properties, bbox?: BBox, id?: string|number): FeatureGeometryCollection; | ||
export function geometryCollection(geometries: GeometryObject[], properties?: Properties, bbox?: BBox, id?: Id): FeatureGeometryCollection; | ||
@@ -144,1 +145,6 @@ /** | ||
export function convertArea(area: number, originalUnit?: Units, finalUnit?: Units): number | ||
/** | ||
* http://turfjs.org/docs/#isnumber | ||
*/ | ||
export function isNumber(num: any): boolean |
57
index.js
@@ -23,13 +23,10 @@ /** | ||
if (properties && properties.constructor !== Object) throw new Error('properties must be an Object'); | ||
if (bbox && bbox.length !== 4) throw new Error('bbox must be an Array of 4 numbers'); | ||
if (id && ['string', 'number'].indexOf(typeof id) === -1) throw new Error('id must be a number or a string'); | ||
var feat = { | ||
type: 'Feature', | ||
properties: properties || {}, | ||
geometry: geometry | ||
}; | ||
if (bbox) { | ||
if (bbox.length !== 4) throw new Error('bbox must be an Array of 4 numbers'); | ||
feat.bbox = bbox; | ||
} | ||
var feat = {type: 'Feature'}; | ||
if (id) feat.id = id; | ||
if (bbox) feat.bbox = bbox; | ||
feat.properties = properties || {}; | ||
feat.geometry = geometry; | ||
return feat; | ||
@@ -60,2 +57,3 @@ } | ||
if (!Array.isArray(coordinates)) throw new Error('coordinates must be an Array'); | ||
if (bbox && bbox.length !== 4) throw new Error('bbox must be an Array of 4 numbers'); | ||
@@ -72,6 +70,3 @@ var geom; | ||
} | ||
if (bbox) { | ||
if (bbox.length !== 4) throw new Error('bbox must be an Array of 4 numbers'); | ||
geom.bbox = bbox; | ||
} | ||
if (bbox) geom.bbox = bbox; | ||
return geom; | ||
@@ -98,3 +93,3 @@ } | ||
if (coordinates.length < 2) throw new Error('Coordinates must be at least 2 numbers long'); | ||
if (typeof coordinates[0] !== 'number' || typeof coordinates[1] !== 'number') throw new Error('Coordinates must contain numbers'); | ||
if (!isNumber(coordinates[0]) || !isNumber(coordinates[1])) throw new Error('Coordinates must contain numbers'); | ||
@@ -138,2 +133,4 @@ return feature({ | ||
for (var j = 0; j < ring[ring.length - 1].length; j++) { | ||
// Check if first point of Polygon contains two numbers | ||
if (i === 0 && j === 0 && !isNumber(ring[0][0]) || !isNumber(ring[0][1])) throw new Error('Coordinates must contain numbers'); | ||
if (ring[ring.length - 1][j] !== ring[0][j]) { | ||
@@ -183,2 +180,4 @@ throw new Error('First and last Position are not equivalent.'); | ||
if (coordinates.length < 2) throw new Error('Coordinates must be an array of two or more positions'); | ||
// Check if first point of LineString contains two numbers | ||
if (!isNumber(coordinates[0][1]) || !isNumber(coordinates[0][1])) throw new Error('Coordinates must contain numbers'); | ||
@@ -197,2 +196,3 @@ return feature({ | ||
* @param {Array<number>} [bbox] BBox [west, south, east, north] | ||
* @param {string|number} [id] Identifier | ||
* @returns {FeatureCollection} a FeatureCollection of input features | ||
@@ -210,11 +210,12 @@ * @example | ||
*/ | ||
function featureCollection(features, bbox) { | ||
function featureCollection(features, bbox, id) { | ||
if (!features) throw new Error('No features passed'); | ||
if (!Array.isArray(features)) throw new Error('features must be an Array'); | ||
if (bbox && bbox.length !== 4) throw new Error('bbox must be an Array of 4 numbers'); | ||
if (id && ['string', 'number'].indexOf(typeof id) === -1) throw new Error('id must be a number or a string'); | ||
var fc = { | ||
type: 'FeatureCollection', | ||
features: features | ||
}; | ||
var fc = {type: 'FeatureCollection'}; | ||
if (id) fc.id = id; | ||
if (bbox) fc.bbox = bbox; | ||
fc.features = features; | ||
return fc; | ||
@@ -512,2 +513,17 @@ } | ||
/** | ||
* isNumber | ||
* | ||
* @param {*} num Number to validate | ||
* @returns {boolean} true/false | ||
* @example | ||
* turf.isNumber(123) | ||
* //=true | ||
* turf.isNumber('foo') | ||
* //=false | ||
*/ | ||
function isNumber(num) { | ||
return !isNaN(num) && num !== null && !Array.isArray(num); | ||
} | ||
module.exports = { | ||
@@ -532,3 +548,4 @@ feature: feature, | ||
convertArea: convertArea, | ||
round: round | ||
round: round, | ||
isNumber: isNumber | ||
}; |
{ | ||
"name": "@turf/helpers", | ||
"version": "4.6.0", | ||
"version": "4.7.0", | ||
"description": "turf helpers module", | ||
@@ -38,5 +38,5 @@ "main": "index.js", | ||
"devDependencies": { | ||
"benchmark": "^2.1.4", | ||
"tape": "^4.6.3" | ||
"benchmark": "2.1.4", | ||
"tape": "4.8.0" | ||
} | ||
} |
@@ -10,3 +10,5 @@ # @turf/helpers | ||
- `geometry` **[Geometry](http://geojson.org/geojson-spec.html#geometry)** input geometry | ||
- `properties` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** properties | ||
- `properties` **\[[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)]** an Object of key-value pairs to add as properties (optional, default `{}`) | ||
- `bbox` **\[[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>]** BBox [west, south, east, north] | ||
- `id` **\[([string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) \| [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number))]** Identifier | ||
@@ -28,2 +30,26 @@ **Examples** | ||
# geometry | ||
Creates a GeoJSON [Geometry](http://geojson.org/geojson-spec.html#geometry) from a Geometry string type & coordinates. | ||
For GeometryCollection type use `helpers.geometryCollection` | ||
**Parameters** | ||
- `type` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Geometry Type | ||
- `coordinates` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** Coordinates | ||
- `bbox` **\[[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>]** BBox [west, south, east, north] | ||
**Examples** | ||
```javascript | ||
var type = 'Point'; | ||
var coordinates = [110, 50]; | ||
var geometry = turf.geometry(type, coordinates); | ||
//=geometry | ||
``` | ||
Returns **[Geometry](http://geojson.org/geojson-spec.html#geometry)** a GeoJSON Geometry | ||
# point | ||
@@ -36,4 +62,5 @@ | ||
- `coordinates` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** longitude, latitude position (each in decimal degrees) | ||
- `properties` **\[[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)]** an Object that is used as the [Feature](http://geojson.org/geojson-spec.html#feature-objects)'s | ||
properties | ||
- `properties` **\[[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)]** an Object of key-value pairs to add as properties (optional, default `{}`) | ||
- `bbox` **\[[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>]** BBox [west, south, east, north] | ||
- `id` **\[([string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) \| [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number))]** Identifier | ||
@@ -57,3 +84,5 @@ **Examples** | ||
- `coordinates` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>>>** an array of LinearRings | ||
- `properties` **\[[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)]** a properties object | ||
- `properties` **\[[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)]** an Object of key-value pairs to add as properties (optional, default `{}`) | ||
- `bbox` **\[[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>]** BBox [west, south, east, north] | ||
- `id` **\[([string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) \| [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number))]** Identifier | ||
@@ -87,3 +116,5 @@ **Examples** | ||
- `coordinates` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>>** an array of Positions | ||
- `properties` **\[[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)]** an Object of key-value pairs to add as properties | ||
- `properties` **\[[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)]** an Object of key-value pairs to add as properties (optional, default `{}`) | ||
- `bbox` **\[[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>]** BBox [west, south, east, north] | ||
- `id` **\[([string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) \| [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number))]** Identifier | ||
@@ -122,2 +153,4 @@ **Examples** | ||
- `features` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Feature](http://geojson.org/geojson-spec.html#feature-objects)>** input features | ||
- `bbox` **\[[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>]** BBox [west, south, east, north] | ||
- `id` **\[([string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) \| [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number))]** Identifier | ||
@@ -148,3 +181,5 @@ **Examples** | ||
- `coordinates` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>>>** an array of LineStrings | ||
- `properties` **\[[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)]** an Object of key-value pairs to add as properties | ||
- `properties` **\[[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)]** an Object of key-value pairs to add as properties (optional, default `{}`) | ||
- `bbox` **\[[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>]** BBox [west, south, east, north] | ||
- `id` **\[([string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) \| [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number))]** Identifier | ||
@@ -171,3 +206,5 @@ **Examples** | ||
- `coordinates` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>>** an array of Positions | ||
- `properties` **\[[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)]** an Object of key-value pairs to add as properties | ||
- `properties` **\[[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)]** an Object of key-value pairs to add as properties (optional, default `{}`) | ||
- `bbox` **\[[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>]** BBox [west, south, east, north] | ||
- `id` **\[([string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) \| [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number))]** Identifier | ||
@@ -194,3 +231,5 @@ **Examples** | ||
- `coordinates` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>>>>** an array of Polygons | ||
- `properties` **\[[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)]** an Object of key-value pairs to add as properties | ||
- `properties` **\[[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)]** an Object of key-value pairs to add as properties (optional, default `{}`) | ||
- `bbox` **\[[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>]** BBox [west, south, east, north] | ||
- `id` **\[([string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) \| [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number))]** Identifier | ||
@@ -216,4 +255,6 @@ **Examples** | ||
- `geometries` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<{Geometry}>** an array of GeoJSON Geometries | ||
- `properties` **\[[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)]** an Object of key-value pairs to add as properties | ||
- `geometries` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Geometry](http://geojson.org/geojson-spec.html#geometry)>** an array of GeoJSON Geometries | ||
- `properties` **\[[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)]** an Object of key-value pairs to add as properties (optional, default `{}`) | ||
- `bbox` **\[[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)<[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>]** BBox [west, south, east, north] | ||
- `id` **\[([string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) \| [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number))]** Identifier | ||
@@ -352,2 +393,21 @@ **Examples** | ||
# isNumber | ||
isNumber | ||
**Parameters** | ||
- `num` **Any** Number to validate | ||
**Examples** | ||
```javascript | ||
turf.isNumber(123) | ||
//=true | ||
turf.isNumber('foo') | ||
//=false | ||
``` | ||
Returns **[boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** true/false | ||
<!-- This file is automatically generated. Please don't edit it directly: | ||
@@ -354,0 +414,0 @@ if you find an error, edit the source file (likely index.js), and re-run |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
47629
614
426