From abc32797525e995de21de76173b84f1070c0d03a Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Tue, 11 Sep 2018 08:10:18 +0200 Subject: [PATCH] Use TopoJSON types from @types/topojson --- package.json | 1 + src/ol/format/TopoJSON.js | 23 +++++++++++++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index bfb0df8f3c..05c93f50ff 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "devDependencies": { "@openlayers/eslint-plugin": "^4.0.0-beta.1", "@types/geojson": "^7946.0.4", + "@types/topojson-specification": "^1.0.0", "buble": "^0.19.3", "buble-loader": "^0.5.1", "chaikin-smooth": "^1.0.4", diff --git a/src/ol/format/TopoJSON.js b/src/ol/format/TopoJSON.js index 5466a99592..cc5639844e 100644 --- a/src/ol/format/TopoJSON.js +++ b/src/ol/format/TopoJSON.js @@ -12,6 +12,17 @@ import Point from '../geom/Point.js'; import Polygon from '../geom/Polygon.js'; import {get as getProjection} from '../proj.js'; +/** + * @typedef {import("topojson-specification").Topology} TopoJSONTopology + * @typedef {import("topojson-specification").GeometryCollection} TopoJSONGeometryCollection + * @typedef {import("topojson-specification").GeometryObject} TopoJSONGeometry + * @typedef {import("topojson-specification").Point} TopoJSONPoint + * @typedef {import("topojson-specification").MultiPoint} TopoJSONMultiPoint + * @typedef {import("topojson-specification").LineString} TopoJSONLineString + * @typedef {import("topojson-specification").MultiLineString} TopoJSONMultiLineString + * @typedef {import("topojson-specification").Polygon} TopoJSONPolygon + * @typedef {import("topojson-specification").MultiPolygon} TopoJSONMultiPolygon + */ /** * @typedef {Object} Options @@ -178,7 +189,7 @@ function concatenateArcs(indices, arcs) { /** * Create a point from a TopoJSON geometry object. * - * @param {TopoJSONGeometry} object TopoJSON object. + * @param {TopoJSONPoint} object TopoJSON object. * @param {Array} scale Scale for each dimension. * @param {Array} translate Translation for each dimension. * @return {Point} Geometry. @@ -195,7 +206,7 @@ function readPointGeometry(object, scale, translate) { /** * Create a multi-point from a TopoJSON geometry object. * - * @param {TopoJSONGeometry} object TopoJSON object. + * @param {TopoJSONMultiPoint} object TopoJSON object. * @param {Array} scale Scale for each dimension. * @param {Array} translate Translation for each dimension. * @return {MultiPoint} Geometry. @@ -214,7 +225,7 @@ function readMultiPointGeometry(object, scale, translate) { /** * Create a linestring from a TopoJSON geometry object. * - * @param {TopoJSONGeometry} object TopoJSON object. + * @param {TopoJSONLineString} object TopoJSON object. * @param {Array>} arcs Array of arcs. * @return {LineString} Geometry. */ @@ -227,7 +238,7 @@ function readLineStringGeometry(object, arcs) { /** * Create a multi-linestring from a TopoJSON geometry object. * - * @param {TopoJSONGeometry} object TopoJSON object. + * @param {TopoJSONMultiLineString} object TopoJSON object. * @param {Array>} arcs Array of arcs. * @return {MultiLineString} Geometry. */ @@ -243,7 +254,7 @@ function readMultiLineStringGeometry(object, arcs) { /** * Create a polygon from a TopoJSON geometry object. * - * @param {TopoJSONGeometry} object TopoJSON object. + * @param {TopoJSONPolygon} object TopoJSON object. * @param {Array>} arcs Array of arcs. * @return {Polygon} Geometry. */ @@ -259,7 +270,7 @@ function readPolygonGeometry(object, arcs) { /** * Create a multi-polygon from a TopoJSON geometry object. * - * @param {TopoJSONGeometry} object TopoJSON object. + * @param {TopoJSONMultiPolygon} object TopoJSON object. * @param {Array>} arcs Array of arcs. * @return {MultiPolygon} Geometry. */