@geoblocks/edittrack
Advanced tools
Comparing version 2.0.0-beta.5 to 2.0.0-beta.6
@@ -16,4 +16,7 @@ import GeoJSONFormat from 'ol/format/GeoJSON.js'; | ||
async computeProfile(segment) { | ||
// TODO: round to coordinate to meter precision | ||
const geom = this.geojsonFormat.writeGeometry(segment.getGeometry()); | ||
const geometry = segment.getGeometry(); | ||
if (geometry.getCoordinates().length != 2) { | ||
throw new Error('SwisstopoProfiler requires a segment with exactly 2 coordinates'); | ||
} | ||
const geom = this.geojsonFormat.writeGeometry(geometry); | ||
const request = await fetch(this.url, { | ||
@@ -24,6 +27,12 @@ method: 'POST', | ||
}, | ||
body: `geom=${geom}&sr=2056&offset=1` | ||
body: `geom=${geom}&sr=2056&offset=1&distinct_points=true` | ||
}); | ||
const profile = await request.json(); | ||
segment.set('profile', profile.map(swisstopoToXYZM.bind(null, this.projection))); | ||
const profile = (await request.json()).map(swisstopoToXYZM.bind(null, this.projection)); | ||
// Despite the fact that the distinct_points parameter is set and the passed coordinates | ||
// must not be modified, the API rounds the coordinates. | ||
// Therefore, we need to update the first and last coordinates of the profile with the | ||
// original coordinates. | ||
profile.at(0).splice(0, 2, ...geometry.getCoordinateAt(0)); | ||
profile.at(-1).splice(0, 2, ...geometry.getCoordinateAt(-1)); | ||
segment.set('profile', profile); | ||
} | ||
@@ -34,2 +43,2 @@ } | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3dpc3N0b3BvUHJvZmlsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvZmlsZXIvU3dpc3N0b3BvUHJvZmlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxhQUFhLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFDLEdBQUcsSUFBSSxhQUFhLEVBQUUsU0FBUyxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBcUIzRCxNQUFNLENBQUMsT0FBTyxPQUFPLGlCQUFpQjtJQUM1QixHQUFHLEdBQUcsc0RBQXNELENBQUM7SUFDN0QsVUFBVSxDQUFpQjtJQUMzQixhQUFhLENBQWdCO0lBRXJDLFlBQVksT0FBaUM7UUFDM0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBRXJDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxFQUFFLHFDQUFxQyxDQUFDLENBQUM7UUFFbEYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBQztZQUNyQyxjQUFjLEVBQUUsV0FBVztZQUMzQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUNuQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUE0QjtRQUMvQywrQ0FBK0M7UUFDL0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFckUsTUFBTSxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNwQyxNQUFNLEVBQUUsTUFBTTtZQUNkLE9BQU8sRUFBRTtnQkFDUCxjQUFjLEVBQUUsbUNBQW1DO2FBQ3BEO1lBQ0QsSUFBSSxFQUFFLFFBQVEsSUFBSSxtQkFBbUI7U0FDdEMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7Q0FDRjtBQUVELFNBQVMsZUFBZSxDQUFDLFVBQTBCLEVBQUUsQ0FBdUI7SUFDMUUsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUMxRixDQUFDIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3dpc3N0b3BvUHJvZmlsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvZmlsZXIvU3dpc3N0b3BvUHJvZmlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxhQUFhLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFDLEdBQUcsSUFBSSxhQUFhLEVBQUUsU0FBUyxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBcUIzRCxNQUFNLENBQUMsT0FBTyxPQUFPLGlCQUFpQjtJQUM1QixHQUFHLEdBQUcsc0RBQXNELENBQUM7SUFDN0QsVUFBVSxDQUFpQjtJQUMzQixhQUFhLENBQWdCO0lBRXJDLFlBQVksT0FBaUM7UUFDM0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBRXJDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxFQUFFLHFDQUFxQyxDQUFDLENBQUM7UUFFbEYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBQztZQUNyQyxjQUFjLEVBQUUsV0FBVztZQUMzQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUNuQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUE0QjtRQUMvQyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUVBQWlFLENBQUMsQ0FBQztRQUNyRixDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFeEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNwQyxNQUFNLEVBQUUsTUFBTTtZQUNkLE9BQU8sRUFBRTtnQkFDUCxjQUFjLEVBQUUsbUNBQW1DO2FBQ3BEO1lBQ0QsSUFBSSxFQUFFLFFBQVEsSUFBSSx3Q0FBd0M7U0FDM0QsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUV4Rix3RkFBd0Y7UUFDeEYsd0RBQXdEO1FBQ3hELHNGQUFzRjtRQUN0Rix3QkFBd0I7UUFDeEIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRCxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU3RCxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUFFRCxTQUFTLGVBQWUsQ0FBQyxVQUEwQixFQUFFLENBQXVCO0lBQzFFLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDMUYsQ0FBQyJ9 |
{ | ||
"name": "@geoblocks/edittrack", | ||
"version": "2.0.0-beta.5", | ||
"version": "2.0.0-beta.6", | ||
"description": "Geoblocks edittrack", | ||
@@ -43,4 +43,4 @@ "scripts": { | ||
"@types/mocha": "10.0.6", | ||
"@typescript-eslint/eslint-plugin": "7.6.0", | ||
"@typescript-eslint/parser": "7.6.0", | ||
"@typescript-eslint/eslint-plugin": "7.7.0", | ||
"@typescript-eslint/parser": "7.7.0", | ||
"chai": "5.1.0", | ||
@@ -47,0 +47,0 @@ "eslint": "8.57.0", |
@@ -40,4 +40,7 @@ import GeoJSONFormat from 'ol/format/GeoJSON.js'; | ||
async computeProfile(segment: Feature<LineString>): Promise<void> { | ||
// TODO: round to coordinate to meter precision | ||
const geom = this.geojsonFormat.writeGeometry(segment.getGeometry()); | ||
const geometry = segment.getGeometry(); | ||
if (geometry.getCoordinates().length != 2) { | ||
throw new Error('SwisstopoProfiler requires a segment with exactly 2 coordinates'); | ||
} | ||
const geom = this.geojsonFormat.writeGeometry(geometry); | ||
@@ -49,6 +52,15 @@ const request = await fetch(this.url, { | ||
}, | ||
body: `geom=${geom}&sr=2056&offset=1` | ||
body: `geom=${geom}&sr=2056&offset=1&distinct_points=true` | ||
}); | ||
const profile = await request.json(); | ||
segment.set('profile', profile.map(swisstopoToXYZM.bind(null, this.projection))); | ||
const profile = (await request.json()).map(swisstopoToXYZM.bind(null, this.projection)); | ||
// Despite the fact that the distinct_points parameter is set and the passed coordinates | ||
// must not be modified, the API rounds the coordinates. | ||
// Therefore, we need to update the first and last coordinates of the profile with the | ||
// original coordinates. | ||
profile.at(0).splice(0, 2, ...geometry.getCoordinateAt(0)); | ||
profile.at(-1).splice(0, 2, ...geometry.getCoordinateAt(-1)); | ||
segment.set('profile', profile); | ||
} | ||
@@ -55,0 +67,0 @@ } |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
260194
4006