There is an sample to get a polygon length using TsGeo.
The Vincenty's formula is used.
To create a polyline:
import {Coordinate} from "tsgeo/Coordinate";
import {Polygon} from "tsgeo/Polygon";
/* Add the following in a method of TS class */
let polygon = new Polygon();
polygon.addPoint(new Coordinate(52.5, 13.5));
polygon.addPoint(new Coordinate(54.5, 12.5));
polygon.addPoint(new Coordinate(55.5, 14.5));
To get length of each segments:
let index = 1;
for (const segment of polygon.getSegments()) {
console.log('Segment ' + index + ' length: ' +
(segment.getLength(new Vincenty()) / 1000).toString() +
' kilometers');
index++;
}
This snippet display the following data:
Segment 1 length: 275.154731 kilometers
Segment 2 length: 143.797789 kilometers
Segment 3 length: 340.283134 kilometers
To get length of each segments, where points are reversed:
let index = 1;
let reversePolygon = polygon.getReverse();
for (const segment of reversePolygon.getSegments()) {
console.log('Segment ' + index + ' length: ' +
(segment.getLength(new Vincenty()) / 1000).toString() +
' kilometers');
index++;
}
This snippet display the following data:
Segment 1 length: 143.797789 kilometers
Segment 2 length: 275.154731 kilometers
Segment 3 length: 340.283134 kilometers
To get area and perimeter:
console.log(Polygon Area = ' + (polygon.getArea() / 1000000) + ' km², <br>' +
'Perimeter = ' + (polygon.getPerimeter(new Vincenty()) / 1000) + ' m);
This snippet display the following data:
Polygon Area = 17773.260742317438 km²,
Perimeter = 742.16571 m
Ajouter un commentaire