require(["esri/geometry/support/geodesicUtils"], (geodesicUtils) => { /* code goes here */ });
import * as geodesicUtils from "@arcgis/core/geometry/support/geodesicUtils.js";
esri/geometry/support/geodesicUtils
This class performs geodetic computations for Earth and 70+ non-Earth spheroids. Methods include geodesic length, area, point-distance and point-to-point computations.
- See also
Method Overview
Name | Return Type | Summary | Object |
---|---|---|---|
Geodetically computes the area for one or more polygons. | geodesicUtils | ||
Computes and returns a densified polyline or polygon. | geodesicUtils | ||
Geodetically computes the direction and distance between two known locations. | geodesicUtils | ||
Geodetically computes polygon perimeter or polyline length for one or more geometries. | geodesicUtils | ||
Geodetically computes the location at a defined distance and direction from a known location. | geodesicUtils |
Method Details
-
Geodetically computes the area for one or more polygons.
ParametersThe polygons to compute the area for.
unit StringoptionalDefault Value: "square-meters"Output area units.
Possible Values:"square-millimeters"|"square-centimeters"|"square-decimeters"|"square-meters"|"square-kilometers"|"square-inches"|"square-feet"|"square-yards"|"square-miles"|"square-us-feet"|"acres"|"ares"|"hectares"
ReturnsExample// Display the area of the Bermuda Triangle. const MIAMI = { lat: 25.775278, lon: -80.208889 }; // Florida const HAMILTON = { lat: 32.293, lon: -64.782 }; // Bermuda const SANJUAN = { lat: 18.406389, lon: -66.063889 }; // Puerto Rico const polygon = new Polygon({ rings: [[ [MIAMI.lon, MIAMI.lat], [HAMILTON.lon, HAMILTON.lat], [SANJUAN.lon, SANJUAN.lat], [MIAMI.lon, MIAMI.lat] ]] }); const areas = geodesicUtils.geodesicAreas([polygon], "square-kilometers"); const area = Math.round(areas[0]); console.log("Area: ", area, " km²"); // Area: 1150498 km²
-
Computes and returns a densified polyline or polygon.
ParametersReturnsExample// Densify the polygon representing Bermuda Triangle with maximum segment size of 100km. const MIAMI = { lat: 25.775278, lon: -80.208889 }; // Florida const HAMILTON = { lat: 32.293, lon: -64.782 }; // Bermuda const SANJUAN = { lat: 18.406389, lon: -66.063889 }; // Puerto Rico const polygon = new Polygon({ rings: [[ [MIAMI.lon, MIAMI.lat], [HAMILTON.lon, HAMILTON.lat], [SANJUAN.lon, SANJUAN.lat], [MIAMI.lon, MIAMI.lat] ]] }); const densifiedPolygon = geodesicUtils.geodesicDensify(polygon, 100000); const vertexCountBefore = polygon.rings[0].length; const vertexCountAfter = densifiedPolygon.rings[0].length; console.log("Before: ", vertexCountBefore, ", After: ", vertexCountAfter); // Before: 4, After: 51
-
geodesicDistance
geodesicDistance(from, to, unit){GeodesicDistanceResult}static
-
Geodetically computes the direction and distance between two known locations. Both input points must have the same geographic coordinate system.
Parametersfrom PointThe origin location.
to PointThe destination location.
unit LengthUnitoptionalDefault Value: "meters"Output linear units.
ReturnsType Description GeodesicDistanceResult Computed distance and direction between the two known locations. Name Type Description distance number The distance between the two locations. azimuth number The azimuth (or "bearing") in degrees. Values range from 0° to 360°. reverseAzimuth number The reverse azimuth in degrees. Values range from 0° to 360°. Example// Display the distance and direction between Los Angeles and New York City. const LA = { latitude: 34.05, longitude: -118.25 }; const NY = { latitude: 40.7127, longitude: -74.0059 }; const join = geodesicUtils.geodesicDistance( new Point({ x: LA.longitude, y: LA.latitude }), new Point({ x: NY.longitude, y: NY.latitude }), "kilometers" ); const { distance, azimuth } = join; console.log("Distance: ", distance, ", Direction: ", azimuth);
-
Geodetically computes polygon perimeter or polyline length for one or more geometries.
ParametersThe input polylines or polygons.
unit LengthUnitoptionalDefault Value: "meters"Output linear units.
ReturnsExample// Display the perimeter of the Bermuda Triangle. const MIAMI = { lat: 25.775278, lon: -80.208889 }; // Florida const HAMILTON = { lat: 32.293, lon: -64.782 }; // Bermuda const SANJUAN = { lat: 18.406389, lon: -66.063889 }; // Puerto Rico const polygon = new Polygon({ rings: [[ [MIAMI.lon, MIAMI.lat], [HAMILTON.lon, HAMILTON.lat], [SANJUAN.lon, SANJUAN.lat], [MIAMI.lon, MIAMI.lat] ]] }); const perimeters = geodesicUtils.geodesicLengths([polygon], "kilometers"); const perimeter = Math.round(perimeters[0]); console.log("Perimeter: ", perimeter, " km"); // Perimeter: 4879 km
-
pointFromDistance
pointFromDistance(point, distance, azimuth){Point}static
-
Geodetically computes the location at a defined distance and direction from a known location.
ParametersReturnsType Description Point The computed point. Example// Display the location of a point 10km East of Los Angeles. const LA = { latitude: 34.05, longitude: -118.25 }; const destination = geodesicUtils.pointFromDistance( new Point({ x: LA.longitude, y: LA.latitude }), 10000, 90 ); const { latitude, longitude } = destination; console.log("Latitude: ", latitude, ", Longitude: ", longitude);
Type Definitions
-
Computed distance and direction between two known locations.