102 lines
4.3 KiB
TypeScript
102 lines
4.3 KiB
TypeScript
import { OsmObject } from "../../../src/Logic/Osm/OsmObject"
|
|
import { Utils } from "../../../src/Utils"
|
|
import ScriptUtils from "../../../scripts/ScriptUtils"
|
|
import { readFileSync } from "fs"
|
|
import { describe, expect, it } from "vitest"
|
|
import OsmObjectDownloader from "../../../src/Logic/Osm/OsmObjectDownloader"
|
|
|
|
describe("OsmObject", () => {
|
|
describe("download referencing ways", () => {
|
|
Utils.injectJsonDownloadForTests(
|
|
"https://api.openstreetmap.org/api/0.6/node/1124134958/ways",
|
|
{
|
|
version: "0.6",
|
|
generator: "CGImap 0.8.6 (49805 spike-06.openstreetmap.org)",
|
|
copyright: "OpenStreetMap and contributors",
|
|
attribution: "http://www.openstreetmap.org/copyright",
|
|
license: "http://opendatacommons.org/licenses/odbl/1-0/",
|
|
elements: [
|
|
{
|
|
type: "way",
|
|
id: 97038428,
|
|
timestamp: "2019-06-19T12:26:24Z",
|
|
version: 6,
|
|
changeset: 71399984,
|
|
user: "Pieter Vander Vennet",
|
|
uid: 3818858,
|
|
nodes: [1124134958, 323729212, 323729351, 2542460408, 187073405],
|
|
tags: {
|
|
highway: "residential",
|
|
name: "Brugs-Kerkhofstraat",
|
|
"sett:pattern": "arc",
|
|
surface: "sett",
|
|
},
|
|
},
|
|
{
|
|
type: "way",
|
|
id: 97038434,
|
|
timestamp: "2019-06-19T12:26:24Z",
|
|
version: 5,
|
|
changeset: 71399984,
|
|
user: "Pieter Vander Vennet",
|
|
uid: 3818858,
|
|
nodes: [1124134958, 1124135024, 187058607],
|
|
tags: {
|
|
bicycle: "use_sidepath",
|
|
highway: "residential",
|
|
name: "Kerkhofblommenstraat",
|
|
"sett:pattern": "arc",
|
|
surface: "sett",
|
|
},
|
|
},
|
|
{
|
|
type: "way",
|
|
id: 97038435,
|
|
timestamp: "2017-12-21T21:41:08Z",
|
|
version: 4,
|
|
changeset: 54826837,
|
|
user: "Jakka",
|
|
uid: 2403313,
|
|
nodes: [1124134958, 2576628889, 1124135035, 5298371485, 5298371495],
|
|
tags: {
|
|
bicycle: "use_sidepath",
|
|
highway: "residential",
|
|
name: "Kerkhofblommenstraat",
|
|
},
|
|
},
|
|
{
|
|
type: "way",
|
|
id: 251446313,
|
|
timestamp: "2019-01-07T19:22:47Z",
|
|
version: 4,
|
|
changeset: 66106872,
|
|
user: "M!dgard",
|
|
uid: 763799,
|
|
nodes: [1124134958, 5243143198, 4555715455],
|
|
tags: { foot: "yes", highway: "service" },
|
|
},
|
|
],
|
|
}
|
|
)
|
|
|
|
it("should download referencing ways", async () => {
|
|
const downloader = new OsmObjectDownloader()
|
|
const ways = await downloader.DownloadReferencingWays("node/1124134958")
|
|
expect(ways).toBeDefined()
|
|
expect(ways).toHaveLength(4)
|
|
})
|
|
|
|
it("should download full OSM-relations", async () => {
|
|
ScriptUtils.fixUtils()
|
|
Utils.injectJsonDownloadForTests(
|
|
"https://api.openstreetmap.org/api/0.6/relation/5759328/full",
|
|
JSON.parse(readFileSync("./test/data/relation_5759328.json", { encoding: "utf-8" }))
|
|
)
|
|
const r = await new OsmObjectDownloader()
|
|
.DownloadObjectAsync("relation/5759328")
|
|
.then((x) => x)
|
|
const geojson = r.asGeoJson()
|
|
expect(geojson.geometry.type).toBe("MultiPolygon")
|
|
})
|
|
})
|
|
})
|