Use FeatureLike typedef
This commit is contained in:
@@ -13,7 +13,7 @@ class VectorContext {
|
|||||||
* Render a geometry with a custom renderer.
|
* Render a geometry with a custom renderer.
|
||||||
*
|
*
|
||||||
* @param {import("../geom/SimpleGeometry.js").default} geometry Geometry.
|
* @param {import("../geom/SimpleGeometry.js").default} geometry Geometry.
|
||||||
* @param {import("../Feature.js").default|import("./Feature.js").default} feature Feature.
|
* @param {import("../Feature.js").FeatureLike} feature Feature.
|
||||||
* @param {Function} renderer Renderer.
|
* @param {Function} renderer Renderer.
|
||||||
*/
|
*/
|
||||||
drawCustom(geometry, feature, renderer) {}
|
drawCustom(geometry, feature, renderer) {}
|
||||||
@@ -52,43 +52,43 @@ class VectorContext {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {import("../geom/LineString.js").default|import("./Feature.js").default} lineStringGeometry Line string geometry.
|
* @param {import("../geom/LineString.js").default|import("./Feature.js").default} lineStringGeometry Line string geometry.
|
||||||
* @param {import("../Feature.js").default|import("./Feature.js").default} feature Feature.
|
* @param {import("../Feature.js").FeatureLike} feature Feature.
|
||||||
*/
|
*/
|
||||||
drawLineString(lineStringGeometry, feature) {}
|
drawLineString(lineStringGeometry, feature) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {import("../geom/MultiLineString.js").default|import("./Feature.js").default} multiLineStringGeometry MultiLineString geometry.
|
* @param {import("../geom/MultiLineString.js").default|import("./Feature.js").default} multiLineStringGeometry MultiLineString geometry.
|
||||||
* @param {import("../Feature.js").default|import("./Feature.js").default} feature Feature.
|
* @param {import("../Feature.js").FeatureLike} feature Feature.
|
||||||
*/
|
*/
|
||||||
drawMultiLineString(multiLineStringGeometry, feature) {}
|
drawMultiLineString(multiLineStringGeometry, feature) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {import("../geom/MultiPoint.js").default|import("./Feature.js").default} multiPointGeometry MultiPoint geometry.
|
* @param {import("../geom/MultiPoint.js").default|import("./Feature.js").default} multiPointGeometry MultiPoint geometry.
|
||||||
* @param {import("../Feature.js").default|import("./Feature.js").default} feature Feature.
|
* @param {import("../Feature.js").FeatureLike} feature Feature.
|
||||||
*/
|
*/
|
||||||
drawMultiPoint(multiPointGeometry, feature) {}
|
drawMultiPoint(multiPointGeometry, feature) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {import("../geom/MultiPolygon.js").default} multiPolygonGeometry MultiPolygon geometry.
|
* @param {import("../geom/MultiPolygon.js").default} multiPolygonGeometry MultiPolygon geometry.
|
||||||
* @param {import("../Feature.js").default|import("./Feature.js").default} feature Feature.
|
* @param {import("../Feature.js").FeatureLike} feature Feature.
|
||||||
*/
|
*/
|
||||||
drawMultiPolygon(multiPolygonGeometry, feature) {}
|
drawMultiPolygon(multiPolygonGeometry, feature) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {import("../geom/Point.js").default|import("./Feature.js").default} pointGeometry Point geometry.
|
* @param {import("../geom/Point.js").default|import("./Feature.js").default} pointGeometry Point geometry.
|
||||||
* @param {import("../Feature.js").default|import("./Feature.js").default} feature Feature.
|
* @param {import("../Feature.js").FeatureLike} feature Feature.
|
||||||
*/
|
*/
|
||||||
drawPoint(pointGeometry, feature) {}
|
drawPoint(pointGeometry, feature) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {import("../geom/Polygon.js").default|import("./Feature.js").default} polygonGeometry Polygon geometry.
|
* @param {import("../geom/Polygon.js").default|import("./Feature.js").default} polygonGeometry Polygon geometry.
|
||||||
* @param {import("../Feature.js").default|import("./Feature.js").default} feature Feature.
|
* @param {import("../Feature.js").FeatureLike} feature Feature.
|
||||||
*/
|
*/
|
||||||
drawPolygon(polygonGeometry, feature) {}
|
drawPolygon(polygonGeometry, feature) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {import("../geom/Geometry.js").default|import("./Feature.js").default} geometry Geometry.
|
* @param {import("../geom/Geometry.js").default|import("./Feature.js").default} geometry Geometry.
|
||||||
* @param {import("../Feature.js").default|import("./Feature.js").default} feature Feature.
|
* @param {import("../Feature.js").FeatureLike} feature Feature.
|
||||||
*/
|
*/
|
||||||
drawText(geometry, feature) {}
|
drawText(geometry, feature) {}
|
||||||
|
|
||||||
|
|||||||
@@ -247,7 +247,7 @@ class CanvasBuilder extends VectorContext {
|
|||||||
/**
|
/**
|
||||||
* @protected
|
* @protected
|
||||||
* @param {import("../../geom/Geometry.js").default|import("../Feature.js").default} geometry Geometry.
|
* @param {import("../../geom/Geometry.js").default|import("../Feature.js").default} geometry Geometry.
|
||||||
* @param {import("../../Feature.js").default|import("../Feature.js").default} feature Feature.
|
* @param {import("../../Feature.js").FeatureLike} feature Feature.
|
||||||
*/
|
*/
|
||||||
beginGeometry(geometry, feature) {
|
beginGeometry(geometry, feature) {
|
||||||
this.beginGeometryInstruction1_ = [CanvasInstruction.BEGIN_GEOMETRY, feature, 0];
|
this.beginGeometryInstruction1_ = [CanvasInstruction.BEGIN_GEOMETRY, feature, 0];
|
||||||
@@ -429,7 +429,7 @@ class CanvasBuilder extends VectorContext {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {import("../../geom/Geometry.js").default|import("../Feature.js").default} geometry Geometry.
|
* @param {import("../../geom/Geometry.js").default|import("../Feature.js").default} geometry Geometry.
|
||||||
* @param {import("../../Feature.js").default|import("../Feature.js").default} feature Feature.
|
* @param {import("../../Feature.js").FeatureLike} feature Feature.
|
||||||
*/
|
*/
|
||||||
endGeometry(geometry, feature) {
|
endGeometry(geometry, feature) {
|
||||||
this.beginGeometryInstruction1_[2] = this.instructions.length;
|
this.beginGeometryInstruction1_[2] = this.instructions.length;
|
||||||
|
|||||||
@@ -402,7 +402,7 @@ class Executor {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {import("../canvas.js").DeclutterGroup} declutterGroup Declutter group.
|
* @param {import("../canvas.js").DeclutterGroup} declutterGroup Declutter group.
|
||||||
* @param {import("../../Feature.js").default|import("../Feature.js").default} feature Feature.
|
* @param {import("../../Feature.js").FeatureLike} feature Feature.
|
||||||
*/
|
*/
|
||||||
renderDeclutter_(declutterGroup, feature) {
|
renderDeclutter_(declutterGroup, feature) {
|
||||||
if (declutterGroup && declutterGroup.length > 5) {
|
if (declutterGroup && declutterGroup.length > 5) {
|
||||||
@@ -473,7 +473,7 @@ class Executor {
|
|||||||
* to skip.
|
* to skip.
|
||||||
* @param {Array<*>} instructions Instructions array.
|
* @param {Array<*>} instructions Instructions array.
|
||||||
* @param {boolean} snapToPixel Snap point symbols and text to integer pixels.
|
* @param {boolean} snapToPixel Snap point symbols and text to integer pixels.
|
||||||
* @param {function((import("../../Feature.js").default|import("../Feature.js").default)): T|undefined} featureCallback Feature callback.
|
* @param {function(import("../../Feature.js").FeatureLike): T|undefined} featureCallback Feature callback.
|
||||||
* @param {import("../../extent.js").Extent=} opt_hitExtent Only check features that intersect this
|
* @param {import("../../extent.js").Extent=} opt_hitExtent Only check features that intersect this
|
||||||
* extent.
|
* extent.
|
||||||
* @return {T|undefined} Callback result.
|
* @return {T|undefined} Callback result.
|
||||||
@@ -525,14 +525,14 @@ class Executor {
|
|||||||
// When the batch size gets too big, performance decreases. 200 is a good
|
// When the batch size gets too big, performance decreases. 200 is a good
|
||||||
// balance between batch size and number of fill/stroke instructions.
|
// balance between batch size and number of fill/stroke instructions.
|
||||||
const batchSize = this.instructions != instructions || this.overlaps ? 0 : 200;
|
const batchSize = this.instructions != instructions || this.overlaps ? 0 : 200;
|
||||||
let /** @type {import("../../Feature.js").default|import("../Feature.js").default} */ feature;
|
let /** @type {import("../../Feature.js").FeatureLike} */ feature;
|
||||||
let x, y;
|
let x, y;
|
||||||
while (i < ii) {
|
while (i < ii) {
|
||||||
const instruction = instructions[i];
|
const instruction = instructions[i];
|
||||||
const type = /** @type {CanvasInstruction} */ (instruction[0]);
|
const type = /** @type {CanvasInstruction} */ (instruction[0]);
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case CanvasInstruction.BEGIN_GEOMETRY:
|
case CanvasInstruction.BEGIN_GEOMETRY:
|
||||||
feature = /** @type {import("../../Feature.js").default|import("../Feature.js").default} */ (instruction[1]);
|
feature = /** @type {import("../../Feature.js").FeatureLike} */ (instruction[1]);
|
||||||
if ((skipFeatures && skippedFeaturesHash[getUid(feature)]) || !feature.getGeometry()) {
|
if ((skipFeatures && skippedFeaturesHash[getUid(feature)]) || !feature.getGeometry()) {
|
||||||
i = /** @type {number} */ (instruction[2]);
|
i = /** @type {number} */ (instruction[2]);
|
||||||
} else if (opt_hitExtent !== undefined && !intersects(
|
} else if (opt_hitExtent !== undefined && !intersects(
|
||||||
@@ -735,7 +735,7 @@ class Executor {
|
|||||||
break;
|
break;
|
||||||
case CanvasInstruction.END_GEOMETRY:
|
case CanvasInstruction.END_GEOMETRY:
|
||||||
if (featureCallback !== undefined) {
|
if (featureCallback !== undefined) {
|
||||||
feature = /** @type {import("../../Feature.js").default|import("../Feature.js").default} */ (instruction[1]);
|
feature = /** @type {import("../../Feature.js").FeatureLike} */ (instruction[1]);
|
||||||
const result = featureCallback(feature);
|
const result = featureCallback(feature);
|
||||||
if (result) {
|
if (result) {
|
||||||
return result;
|
return result;
|
||||||
@@ -843,7 +843,7 @@ class Executor {
|
|||||||
* @param {number} viewRotation View rotation.
|
* @param {number} viewRotation View rotation.
|
||||||
* @param {Object<string, boolean>} skippedFeaturesHash Ids of features
|
* @param {Object<string, boolean>} skippedFeaturesHash Ids of features
|
||||||
* to skip.
|
* to skip.
|
||||||
* @param {function((import("../../Feature.js").default|import("../Feature.js").default)): T=} opt_featureCallback
|
* @param {function(import("../../Feature.js").FeatureLike): T=} opt_featureCallback
|
||||||
* Feature callback.
|
* Feature callback.
|
||||||
* @param {import("../../extent.js").Extent=} opt_hitExtent Only check features that intersect this
|
* @param {import("../../extent.js").Extent=} opt_hitExtent Only check features that intersect this
|
||||||
* extent.
|
* extent.
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ class ExecutorGroup {
|
|||||||
* @param {number} rotation Rotation.
|
* @param {number} rotation Rotation.
|
||||||
* @param {number} hitTolerance Hit tolerance in pixels.
|
* @param {number} hitTolerance Hit tolerance in pixels.
|
||||||
* @param {Object<string, boolean>} skippedFeaturesHash Ids of features to skip.
|
* @param {Object<string, boolean>} skippedFeaturesHash Ids of features to skip.
|
||||||
* @param {function((import("../../Feature.js").default|import("../Feature.js").default)): T} callback Feature callback.
|
* @param {function(import("../../Feature.js").FeatureLike): T} callback Feature callback.
|
||||||
* @param {Object<string, import("../canvas.js").DeclutterGroup>} declutterReplays Declutter replays.
|
* @param {Object<string, import("../canvas.js").DeclutterGroup>} declutterReplays Declutter replays.
|
||||||
* @return {T|undefined} Callback result.
|
* @return {T|undefined} Callback result.
|
||||||
* @template T
|
* @template T
|
||||||
@@ -205,7 +205,7 @@ class ExecutorGroup {
|
|||||||
let builderType;
|
let builderType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {import("../../Feature.js").default|import("../Feature.js").default} feature Feature.
|
* @param {import("../../Feature.js").FeatureLike} feature Feature.
|
||||||
* @return {?} Callback result.
|
* @return {?} Callback result.
|
||||||
*/
|
*/
|
||||||
function featureCallback(feature) {
|
function featureCallback(feature) {
|
||||||
|
|||||||
Reference in New Issue
Block a user