From 9f91c98379d2846afecb11bf667f7a4d84eeac10 Mon Sep 17 00:00:00 2001 From: FinnosMauritz Date: Thu, 19 Oct 2023 16:42:17 +0300 Subject: [PATCH 1/4] =?UTF-8?q?=F0=9F=9B=A0=20Add=20Circle=20Options?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/turf-boolean-clockwise/README.md | 0 packages/turf-boolean-clockwise/bench.js | 0 packages/turf-boolean-clockwise/package.json | 0 packages/turf-boolean-overlap/README.md | 0 packages/turf-boolean-overlap/bench.js | 0 packages/turf-boolean-overlap/package.json | 0 packages/turf-circle/index.ts | 50 ++++++++++++-------- scripts/add-import-extensions.js | 0 scripts/check-dependencies.js | 0 scripts/create-new-module | 0 scripts/generate-readmes | 0 scripts/list-modules-to-markdown | 0 scripts/npm-publish-all | 0 scripts/organization-make-public | 0 scripts/update-dependencies | 0 15 files changed, 31 insertions(+), 19 deletions(-) mode change 100755 => 100644 packages/turf-boolean-clockwise/README.md mode change 100755 => 100644 packages/turf-boolean-clockwise/bench.js mode change 100755 => 100644 packages/turf-boolean-clockwise/package.json mode change 100755 => 100644 packages/turf-boolean-overlap/README.md mode change 100755 => 100644 packages/turf-boolean-overlap/bench.js mode change 100755 => 100644 packages/turf-boolean-overlap/package.json mode change 100755 => 100644 scripts/add-import-extensions.js mode change 100755 => 100644 scripts/check-dependencies.js mode change 100755 => 100644 scripts/create-new-module mode change 100755 => 100644 scripts/generate-readmes mode change 100755 => 100644 scripts/list-modules-to-markdown mode change 100755 => 100644 scripts/npm-publish-all mode change 100755 => 100644 scripts/organization-make-public mode change 100755 => 100644 scripts/update-dependencies diff --git a/packages/turf-boolean-clockwise/README.md b/packages/turf-boolean-clockwise/README.md old mode 100755 new mode 100644 diff --git a/packages/turf-boolean-clockwise/bench.js b/packages/turf-boolean-clockwise/bench.js old mode 100755 new mode 100644 diff --git a/packages/turf-boolean-clockwise/package.json b/packages/turf-boolean-clockwise/package.json old mode 100755 new mode 100644 diff --git a/packages/turf-boolean-overlap/README.md b/packages/turf-boolean-overlap/README.md old mode 100755 new mode 100644 diff --git a/packages/turf-boolean-overlap/bench.js b/packages/turf-boolean-overlap/bench.js old mode 100755 new mode 100644 diff --git a/packages/turf-boolean-overlap/package.json b/packages/turf-boolean-overlap/package.json old mode 100755 new mode 100644 diff --git a/packages/turf-circle/index.ts b/packages/turf-circle/index.ts index abfbfe8966..b00143fe75 100644 --- a/packages/turf-circle/index.ts +++ b/packages/turf-circle/index.ts @@ -1,6 +1,6 @@ -import { GeoJsonProperties, Feature, Point, Polygon } from "geojson"; +import { GeoJsonProperties, Feature, Point, Polygon, BBox } from "geojson"; import destination from "@turf/destination"; -import { polygon, Units } from "@turf/helpers"; +import { Id, polygon, Units } from "@turf/helpers"; /** * Takes a {@link Point} and calculates the circle polygon given a radius in degrees, radians, miles, or kilometers; and steps for precision. @@ -12,15 +12,9 @@ import { polygon, Units } from "@turf/helpers"; * @param {number} [options.steps=64] number of steps * @param {string} [options.units='kilometers'] miles, kilometers, degrees, or radians * @param {Object} [options.properties={}] properties + * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature + * @param {string|number} [options.id] Identifier associated with the Feature * @returns {Feature} circle polygon - * @example - * var center = [-75.343, 39.984]; - * var radius = 5; - * var options = {steps: 10, units: 'kilometers', properties: {foo: 'bar'}}; - * var circle = turf.circle(center, radius, options); - * - * //addToMap - * var addToMap = [turf.point(center), circle] */ function circle

( center: number[] | Point | Feature, @@ -29,27 +23,45 @@ function circle

( steps?: number; units?: Units; properties?: P; + bbox?: BBox; + id?: Id } = {} ): Feature { // default params const steps = options.steps || 64; - const properties: any = options.properties - ? options.properties - : !Array.isArray(center) && center.type === "Feature" && center.properties - ? center.properties - : {}; + const stepAngle = -360 / steps; + + let properties: P | undefined = options.properties; + let bboxValue: BBox | undefined; + let idValue: Id | undefined; + + if (!Array.isArray(center) && center.type === "Feature") { + properties = properties || center.properties; + bboxValue = center.bbox; + idValue = center.id; + } + + bboxValue = bboxValue || options.bbox; + idValue = idValue || options.id; + + let _options: { bbox?: BBox; id?: Id; } | undefined; + if (bboxValue || idValue) { + _options = { + ...(bboxValue ? { bbox: bboxValue } : {}), + ...(idValue ? { id: idValue } : {}) + }; + } - // main + // Calculate circle coordinates const coordinates = []; for (let i = 0; i < steps; i++) { coordinates.push( - destination(center, radius, (i * -360) / steps, options).geometry - .coordinates + destination(center, radius, i * stepAngle, options).geometry.coordinates ); } coordinates.push(coordinates[0]); - return polygon([coordinates], properties); + return polygon([coordinates], properties, _options); } export default circle; diff --git a/scripts/add-import-extensions.js b/scripts/add-import-extensions.js old mode 100755 new mode 100644 diff --git a/scripts/check-dependencies.js b/scripts/check-dependencies.js old mode 100755 new mode 100644 diff --git a/scripts/create-new-module b/scripts/create-new-module old mode 100755 new mode 100644 diff --git a/scripts/generate-readmes b/scripts/generate-readmes old mode 100755 new mode 100644 diff --git a/scripts/list-modules-to-markdown b/scripts/list-modules-to-markdown old mode 100755 new mode 100644 diff --git a/scripts/npm-publish-all b/scripts/npm-publish-all old mode 100755 new mode 100644 diff --git a/scripts/organization-make-public b/scripts/organization-make-public old mode 100755 new mode 100644 diff --git a/scripts/update-dependencies b/scripts/update-dependencies old mode 100755 new mode 100644 From 17ec663d36aa30cbdf8fa4f6e28f3a30af427bf4 Mon Sep 17 00:00:00 2001 From: AminoffZ Date: Sun, 22 Oct 2023 22:30:47 +0300 Subject: [PATCH 2/4] Lint and doc --- packages/turf-circle/index.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/turf-circle/index.ts b/packages/turf-circle/index.ts index b00143fe75..6064f927fc 100644 --- a/packages/turf-circle/index.ts +++ b/packages/turf-circle/index.ts @@ -15,8 +15,16 @@ import { Id, polygon, Units } from "@turf/helpers"; * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature * @param {string|number} [options.id] Identifier associated with the Feature * @returns {Feature} circle polygon + * @example + * var center = [-75.343, 39.984]; + * var radius = 5; + * var options = {steps: 10, units: 'kilometers', properties: {foo: 'bar'}}; + * var circle = turf.circle(center, radius, options); + * + * //addToMap + * var addToMap = [turf.point(center), circle] */ -function circle

( +function circle

( center: number[] | Point | Feature, radius: number, options: { @@ -24,7 +32,7 @@ function circle

( units?: Units; properties?: P; bbox?: BBox; - id?: Id + id?: Id; } = {} ): Feature { // default params @@ -44,11 +52,11 @@ function circle

( bboxValue = bboxValue || options.bbox; idValue = idValue || options.id; - let _options: { bbox?: BBox; id?: Id; } | undefined; + let _options: { bbox?: BBox; id?: Id } | undefined; if (bboxValue || idValue) { _options = { ...(bboxValue ? { bbox: bboxValue } : {}), - ...(idValue ? { id: idValue } : {}) + ...(idValue ? { id: idValue } : {}), }; } From dcba1fb4d3f21157c02e4b16aa414db93b27783c Mon Sep 17 00:00:00 2001 From: AminoffZ Date: Thu, 16 Nov 2023 19:28:30 +0200 Subject: [PATCH 3/4] Cleanup turf-circle --- packages/turf-circle/index.ts | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/packages/turf-circle/index.ts b/packages/turf-circle/index.ts index 6064f927fc..afa511f020 100644 --- a/packages/turf-circle/index.ts +++ b/packages/turf-circle/index.ts @@ -12,8 +12,8 @@ import { Id, polygon, Units } from "@turf/helpers"; * @param {number} [options.steps=64] number of steps * @param {string} [options.units='kilometers'] miles, kilometers, degrees, or radians * @param {Object} [options.properties={}] properties - * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature - * @param {string|number} [options.id] Identifier associated with the Feature + * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] to assign to the resulting circle Feature + * @param {string|number} [options.id] Identifier to assign to the resulting circle feature * @returns {Feature} circle polygon * @example * var center = [-75.343, 39.984]; @@ -39,27 +39,17 @@ function circle

( const steps = options.steps || 64; const stepAngle = -360 / steps; - let properties: P | undefined = options.properties; + let properties = options.properties; let bboxValue: BBox | undefined; let idValue: Id | undefined; if (!Array.isArray(center) && center.type === "Feature") { properties = properties || center.properties; - bboxValue = center.bbox; idValue = center.id; } bboxValue = bboxValue || options.bbox; idValue = idValue || options.id; - - let _options: { bbox?: BBox; id?: Id } | undefined; - if (bboxValue || idValue) { - _options = { - ...(bboxValue ? { bbox: bboxValue } : {}), - ...(idValue ? { id: idValue } : {}), - }; - } - // Calculate circle coordinates const coordinates = []; for (let i = 0; i < steps; i++) { @@ -69,7 +59,7 @@ function circle

( } coordinates.push(coordinates[0]); - return polygon([coordinates], properties, _options); + return polygon([coordinates], properties, { bbox: bboxValue, id: idValue }); } export default circle; From 10691b7a72e6a87fe2b3520d4216de582d8e3e3c Mon Sep 17 00:00:00 2001 From: AminoffZ Date: Thu, 16 Nov 2023 20:01:12 +0200 Subject: [PATCH 4/4] reset file permissions --- packages/turf-boolean-clockwise/README.md | 0 packages/turf-boolean-clockwise/bench.js | 0 packages/turf-boolean-clockwise/package.json | 0 packages/turf-boolean-overlap/README.md | 0 packages/turf-boolean-overlap/bench.js | 0 packages/turf-boolean-overlap/package.json | 0 6 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 packages/turf-boolean-clockwise/README.md mode change 100644 => 100755 packages/turf-boolean-clockwise/bench.js mode change 100644 => 100755 packages/turf-boolean-clockwise/package.json mode change 100644 => 100755 packages/turf-boolean-overlap/README.md mode change 100644 => 100755 packages/turf-boolean-overlap/bench.js mode change 100644 => 100755 packages/turf-boolean-overlap/package.json diff --git a/packages/turf-boolean-clockwise/README.md b/packages/turf-boolean-clockwise/README.md old mode 100644 new mode 100755 diff --git a/packages/turf-boolean-clockwise/bench.js b/packages/turf-boolean-clockwise/bench.js old mode 100644 new mode 100755 diff --git a/packages/turf-boolean-clockwise/package.json b/packages/turf-boolean-clockwise/package.json old mode 100644 new mode 100755 diff --git a/packages/turf-boolean-overlap/README.md b/packages/turf-boolean-overlap/README.md old mode 100644 new mode 100755 diff --git a/packages/turf-boolean-overlap/bench.js b/packages/turf-boolean-overlap/bench.js old mode 100644 new mode 100755 diff --git a/packages/turf-boolean-overlap/package.json b/packages/turf-boolean-overlap/package.json old mode 100644 new mode 100755