import { isLoaded, load, execute, executeMany, supportsCurves } from "@arcgis/core/geometry/operators/shapePreservingProjectOperator.js";const { isLoaded, load, execute, executeMany, supportsCurves } = await $arcgis.import("@arcgis/core/geometry/operators/shapePreservingProjectOperator.js");- Since
- ArcGIS Maps SDK for JavaScript 4.32
Transforms 2D geometry segment end points and interior points, thus preserving the geographic location of the segment interior and more accurately maintaining its original shape. A maximum offset deviation parameter controls how much the result of the projection is allowed to deviate from the true preserved shape.
Projecting your data between coordinate systems sometimes requires transforming between geographic coordinate systems. Geographic transformations are used to transform coordinates between spatial references that have different geographic coordinate systems, and thus different datums. Using the most suitable transformation ensures the best possible accuracy when converting geometries from one spatial reference to another.
The geographicTransformationUtils module provides the getTransformation() and
getTransformations() methods which return the default geographic transformation
for the given projection or a list of suitable geographic transformations.
Notes
Verify that isLoaded() returns true before using this module.
Use load() to load this module's dependencies.
Type definitions
Options
minSegmentLengthInDegrees
A lower bound controlling the densification in the input coordinate system. The default setting of 0 represents 1e-5 degrees. If the input coordinate system is a projected coordinate system, then this value is translated to length in linear units at the equator.
- Default value
- 0
Functions
| Name | Return Type | Object |
|---|---|---|
| | |
| | ||
| | ||
| | ||
(GeometryWithoutMeshUnion | null | undefined)[] | | |
| |
isLoaded
Indicates if all dependencies of this module have been loaded.
- Signature
-
isLoaded (): boolean
- Returns
- boolean
Returns
trueif this module's dependencies have been loaded.
load
Loads this module's dependencies. This method must be called first if isLoaded returns false.
- See also
- Signature
-
load (): Promise<void>
execute
Performs the shape preserving project operation on a single geometry.
- Signature
-
execute (geometry: GeometryUnion, outSpatialReference: SpatialReference, options?: Options): GeometryWithoutMeshUnion | null | undefined
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| geometry | The geometry to be projected. | | |
| outSpatialReference | The spatial reference to which the input geometry is projected. | | |
| options | Additional options. | |
- Returns
- GeometryWithoutMeshUnion | null | undefined
The projected geometry or null.
Example
if (!shapePreservingProjectOperator.isLoaded()) { await shapePreservingProjectOperator.load();}
// Project a geometry to a different spatial reference while preserving its shape.const geometry = shapePreservingProjectOperator.execute(polyline, spatialReference); executeMany
Performs the shape preserving project operation on multiple geometries.
- Signature
-
executeMany (geometries: GeometryUnion[], outSpatialReference: SpatialReference, options?: Options): (GeometryWithoutMeshUnion | null | undefined)[]
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| geometries | The geometries to be projected. All the geometries must have the same spatial reference. | | |
| outSpatialReference | The spatial reference to which the input geometries are projected. | | |
| options | Additional options. | |
- Returns
- (GeometryWithoutMeshUnion | null | undefined)[]
Returns the projected geometries or null.