45 lines
No EOL
950 B
TypeScript
45 lines
No EOL
950 B
TypeScript
/**
|
|
* Represents a single change to an object
|
|
*/
|
|
export interface ChangeDescription {
|
|
|
|
/**
|
|
* Identifier of the object
|
|
*/
|
|
type: "node" | "way" | "relation",
|
|
/**
|
|
* Identifier of the object
|
|
* Negative for new objects
|
|
*/
|
|
id: number,
|
|
|
|
/**
|
|
* All changes to tags
|
|
* v = "" or v = undefined to erase this tag
|
|
*/
|
|
tags?: { k: string, v: string }[],
|
|
|
|
/**
|
|
* A change to the geometry:
|
|
* 1) Change of node location
|
|
* 2) Change of way geometry
|
|
* 3) Change of relation members (untested)
|
|
*/
|
|
changes?: {
|
|
lat: number,
|
|
lon: number
|
|
} | {
|
|
// Coordinates are only used for rendering. They should be lon, lat
|
|
locations: [number, number][]
|
|
nodes: number[],
|
|
} | {
|
|
members: { type: "node" | "way" | "relation", ref: number, role: string }[]
|
|
}
|
|
|
|
/*
|
|
Set to delete the object
|
|
*/
|
|
doDelete?: boolean
|
|
|
|
|
|
} |