There is an sample to get a polyline length using TsGeo.
The Vincenty's formula is used.
To create a polyline:
import {Coordinate} from "tsgeo/Coordinate";
import {Polyline} from "tsgeo/Polyline";
/* Add the following in a method of TS class */
let track = new Polyline();
track.addPoint(new Coordinate(52.5, 13.5));
track.addPoint(new Coordinate(54.5, 12.5));
track.addPoint(new Coordinate(55.5, 14.5));
To get length of each segments:
let index = 1;
for (const segment of track.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
To get length of each segments, where points are reversed:
let index = 1;
let reverseTrack = track.getReverse();
for (const segment of reverseTrack.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
To get the polyline length:
console.log('Polyline length: ' +
(track.getLength(new Vincenty()) / 1000).toString() +
' kilometers');
This snippet display the following data:
Length: 418.95252 kilometers
Ajouter un commentaire