@maplat/transform
Version:
A JavaScript library that performs coordinate transformation between two plane coordinate systems using transformation definitions generated by Maplat.
48 lines (43 loc) • 1.3 kB
text/typescript
import type { Position } from "geojson";
/**
* エッジの終点を表す型
* [始点のインデックス, 終点のインデックス]
*/
export type Edge = [number, number];
/**
* エッジセットの型
* [始点と終点の間の中間点群(地図座標系),
* 始点と終点の間の中間点群(変換先座標系),
* 始点と終点のインデックスペア]
*/
export type EdgeSet = [Position[], Position[], Edge];
/**
* 古いバージョンのエッジセット型
* @deprecated 2.00703以降は EdgeSet を使用
*/
export type EdgeSetLegacy = {
illstNodes: Position[];
mercNodes: Position[];
startEnd: Edge;
};
/**
* エッジセットを正規化する
* 古いバージョンのフォーマットを新しいフォーマットに変換する
*
* @param edges エッジセット配列
* @param version バージョン番号(オプション)
* @returns 正規化されたエッジセット配列
*/
function normalizeEdges(
edges: EdgeSet[] | EdgeSetLegacy[],
version?: number
): EdgeSet[] {
if ((version && version >= 2.00703) || Array.isArray(edges[0]))
return edges as EdgeSet[];
return (edges as EdgeSetLegacy[]).map(edge => [
edge.illstNodes,
edge.mercNodes,
edge.startEnd
]);
}
export { normalizeEdges };