DefinitelyTyped/types/mapsjs/index.d.ts
2017-08-20 15:37:53 -07:00

2721 lines
86 KiB
TypeScript

// Type definitions for Mapsjs 9.6.0
// Project: https://github.com/mapsjs
// Definitions by: Matthew James Davis <https://github.com/davismj>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/**
* Mapsjs 9.6.0 Copyright (c) 2013 ISC. All Rights Reserved.
*/
/**
* Clusters a set of points.
* @param {object} options An options object which specifies the clustering algorithm.
* @returns {object} An array of clustered points.
*/
export function clusterPoints(options: {
data: {}[];
pointKey: string;
valueFunction?: (row: any) => number;
radiusFunction: (row: any) => number;
aggregateFunction?: (srcRow: any, cmpRow: any, aggRow: any) => void;
mapUnitsPerPixel: number;
marginPixels?: number;
}): {}[];
/**
* An immutable envelope
* @class envelope
*/
export class envelope {
constructor(minX: number, minY: number, maxX: number, maxY: number);
/**
* Gets the minimum x coordinate of the envelope.
* @returns {number} The minimum x coordinate.
*/
getMinX(): number;
/**
* Gets the minimum y coordinate of the envelope
* @returns {number} The minimum y coordinate.
*/
getMinY(): number;
/**
* Gets the maximum x coordinate of the envelope
* @returns {number} The maximum x coordinate.
*/
getMaxX(): number;
/**
* Gets the maximum y coordinate of the envelope
* @returns {number} The maximum y coordinate.
*/
getMaxY(): number;
/**
* Creates a new envelope from this as deep copy.
* @returns {envelope} The new cloned envelope.
*/
clone(): envelope;
/**
* Creates a new envelope from this one plus x and y margins.
* @param {number} marginX The x margin.
* @param {number} marginY The y margin.
* @returns {envelope} A new envelope.
*/
createFromMargins(marginX: number, marginY: number): envelope;
/**
* Create a new envelope from this one plus a bleed ratio.
* @param {number} bleed The bleed ratio.
* @returns {envelope} A new envelope.
*/
createFromBleed(bleed: number): envelope;
/**
* Gets the center point of the envelope.
* @returns {point} Center as a point.
*/
getCenter(): point;
/**
* Gets the width of the envelope.
* @returns {number} Width of the envelope.
*/
getWidth(): number;
/**
* Gets height of the envelope.
* @returns {number} Height of the envelope.
*/
getHeight(): number;
/**
* Gets area of the envelope.
* @return {number} Area of the envelope.
*/
getArea(): number;
/**
* Returns the minimum and maximum coordinates of this envelope as an envObject.
* @returns {envObject} Representaton of this envelope as an envObject.
*/
toObject(): envObject;
/**
* Gets upper left coordinate of this envelope.
* @returns {point} A new point.
*/
getUL(): point;
/**
* Gets upper right of this envelope.
* @returns {point} A new point.
*/
getUR(): point;
/**
* Gets lower left of this envelope.
* @returns {point} A new point.
*/
getLL(): point;
/**
* Gets lower right of this envelope.
* @returns {point} A new point.
*/
getLR(): point;
/**
* Gets the aspect of the envelope.
* @returns {number} Width-to-height ratio.
*/
getAspect(): number;
/**
* Equality comparer between this and another envelope.
* @param {envelope} env Envelope to compare.
* @return {boolean} Result of equality comparison.
*/
equals(env: envelope): boolean;
/**
* Method for casting this envelope as a string.
* @returns {string} String of the form 'minX,minY,maxX,maxY'.
*/
toString(): string;
/**
* Create a closed geometry from this envelope.
* @returns {geometry} A new closed path geometry.
*/
toGeometry(): geometry;
/**
* Tests whether the given point is contained within this envelope.
* @param {point} pt Point to test.
* @returns {boolean} Result of containment test.
*/
contains(pt: point): boolean;
}
/**
* Exposes static functions that act on or return envelopes.
* @module envelope
*/
export module envelope {
/**
* Creates a new envelope from MapDotNet XML.
* @param {string} xml A MapDotNet XML string of the envelope.
* @returns {envelope} A new envelope
*/
export function createFromMdnXml(xml: string): envelope;
/**
* Creates new envelope from two corner points.
* @param {point} pt1 Corner point
* @param {point} pt2 Opposite corner point
* @returns {envelope} A new envelope
*/
export function createFromPoints(pt1: point, pt2: point): envelope;
/**
* Creates a new envelope from the x and y coordinates of the center
* point and x and y margins from the center point.
* @param {number} centerPtX The center x coordinate.
* @param {number} centerPtY The center y coordinate.
* @param {number} marginX The margin from center x coordinate.
* @param {number} marginY The margin from center y coordinate.
* @returns {envelope} A new envelope
*/
export function createFromCenterAndMargins(centerPtX: number, centerPtY: number, marginX: number, marginY: number): envelope;
/**
* Tests whether two given envelopes intersect.
* @param {envelope} env1 First envelope to test.
* @param {envelope} env2 Second envelope to test.
* @returns {boolean} Result of the intersection test.
*/
export function intersects(env1: envelope, env2: envelope): boolean;
/**
* Creates a new envelope from the union of two given envelopes.
* @param {envelope} env1 The first enevelope to unite.
* @param {envelope} env2 The second envelope to unite.
* @returns {envelope} A new envelope.
*/
export function union(env1: envelope, env2: envelope): envelope;
}
/**
* A general geometry which can represent a point, line, polygon,
* mulitpoint, multilinestring
* @class geometry
*/
export class geometry {
constructor(isPath?: boolean, isClosed?: boolean);
/**
* Creates a new polygon or polyline form the geometry according to
* whether the geometry is closed.
* @returns {any} A new polyline or polygon geometry.
*/
factoryPoly(): any;
/**
* Creates a deep copy of this geometry.
* @returns {geometry} The new cloned geometry.
*/
clone(): geometry;
/**
* Iterates every vertex in the geometry and passes to the supplied
* callback. Return true from in the callback will break the iteration.
* @param {function} action Callback with the signature action(setIdx, idx, x, y, set).
*/
foreachVertex(action: (setIdx: number, idx: number, x: number, y: number, s: number[]) => void): void;
/**
* Returns the geometry's bounding box as an envelope.
* @returns {envelope} The bounding box of the geometry as an envelope.
*/
getBounds(): envelope;
/**
* Checks whether or not this geometry is closed.
* @returns {boolean} Result of the path check.
*/
getIsPath(): boolean;
/**
* Checks whether or not this geometry is closed.
* @returns {boolean} Result of the closed check.
*/
getIsClosed(): boolean;
/**
* Gets the number of sets in this geometry.
* @returns {number} Number of sets.
*/
getSetCount(): number;
/**
* Gets a set from this geometry's set collection by index, or, if no
* index is provided, gets the last set. Note: for polygons, first set
* is primary ring and subsequent ones are holes.
* @param {number} [idx] Index of the set to return.
* @returns {number[]} A set as an array of points in the form [xn,yn].
*/
getSet(idx: number): number[];
/**
* Adds a new set to this geometry's collection of sets.
* @param {number[]} s Set to add as an array of points in the form [xn,yn].
*/
pushSet(s: number[]): void;
/**
* Gets the last set in the geometry's set collection and removes it
* from the collection.
* @returns {number} Set removed as an array of points in the form [xn,yn].
*/
popSet(): number[];
/**
* Creates SVG path data from this geometry if it is a path.
* @returns {string} String of the SVG path or null the geometry is not a path.
*/
toSvgPathData(): string;
/**
* Adds point to the last set in geometry's set collection. If the
* geometry is empty, a new set is added to the geometry first.
* @param {point} pt The point to add.
* @returns {object} Object of the form {setIdx, idx} where setIdx is
* the 0-based index of the set the point was added to and idx is the
* 0-based index of the point in its set.
*/
addPointToLastSet(pt: point): { setIdx: number; idx: number; };
/**
* Tests the validity of this geometry. An open path geometry is valid
* if it has at least one set with at least two points. A closed
* geometry is valid if it has at least one set with at least three
* points. A point (non-path) geometry is always valid.
* @returns {geometry} valid geometry is true, otherwise false.
*/
isValid(): boolean;
/**
* Creates a wkt string from this geometry.
* @returns {string} A string of well known text.
*/
toString(): string;
toWkt(): string;
/**
* Finds the point in this geometry nearest to the given point.
* @param {point} pt Reference point.
* @returns {object} An object of the form {setIdx, ptIdx, pt, distance}
* where setIdx is the index of the set the point is in, ptIdx is the
* index of the point in the set, pt is the point object, and distance
* is the distance of the point to the reference point in map units.
*/
findNearestVertex(pt: point): { setIdx: number; ptIdx: number; pt: point; distance: number; };
/**
* Finds point along boundary of geometry nearest to the given point
* @param {point} pt Reference point.
* @param {boolean} [close] Flag to indicate whether this geometry
* should be treated as a closed geometry.
* @returns {object} An object of the form {setIdx, ptIdx, pt, distance}
* where setIdx is the index of the set the point is in, ptIdx is the
* index of the point in the set, pt is the point object, and distance
* is the distance of the point to the reference point in map units.
*/
findNearestSegment(pt: point, close?: boolean): { setIdx: number; ptIdx: number; pt: point; distance: number; };
/**
* Finds coordinates in map units of the midpoint of this geometry. If
* this geometry is an open path, the midpoint is the midpoint of the
* path. If this geometry is a closed path, the midpoint is the centroid
* of the polygon. If a set index is not provided, finds the labeling
* point for the last set in this geometry's set collection.
* @param {number} [idx] Index of set for which to find the labeling point.
* @returns {point} Midpoint of this geometry.
*/
getLabelingPoint(idx?: number): point;
/**
* Tests whether this geometry contains a given point/
* @param {point} pt The reference point.
* @returns {boolean} Result of the containment test.
*/
contains(pt: point): boolean;
}
/**
* Exposes static functions that act on or return geometries, including
* constructors for specific geometries such as polygon and polyline.
* @module geometry
*/
export module geometry {
/**
* A polyline object which is an open path geometry with one or more paths.
* @class polyline
*/
class polyline extends geometry {
constructor(geom: geometry);
/**
* Gets the underlying geometry of the polyline.
* @returns {geometry} The polyline's underlying geometry object.
*/
getGeometry(): geometry;
/**
* Creates a new polyline object from a deep copy of the underlying geometry.
* @returns {polyline} Thew new cloned polyline.
*/
clone(): polyline;
/**
* Gets number of lines in this polyline.
* @returns {number} Number of lines.
*/
getLineCount(): number;
/**
* Gets a line from this polyline's liune collection by index, or,
* if no index is provided, gets the last line.
* @param {number} [idx] Index of the line to return.
* @returns {number[]} A line as an array of points in the form [xn,yn].
*/
getLine(idx: number): number[];
/**
* Adds a new line to this polyline's line collection.
* @param {number[]} s Line to add as an array of points in the form [xn,yn].
*/
pushLine(s: number[]): void;
/**
* Gets the last line in the polyline's set collection and removes it
* from the collection.
* @returns {number} Line removed as an array of points in the form [xn,yn].
*/
popLine(): number[];
/**
* Calculates distance of a line in a polyline by index according
* to projected map cooordinates. If no index is provided, uses
* the last line in the polyline's set collection.
* @param {number} [idx] Index of the line for which to compute the distance.
* @returns {number} Length in projected units of the distance of the line.
*/
getProjectedDistance(idx: number): number;
/**
* Calculates distance of a line in a polyline by index according
* to actual distance. If no index is provided, uses the last line
* in the polyline's set collection.
* @param {number} [idx] Index of the line for which to compute the distance.
* @returns {number} Distance in meters of the line.
*/
getActualDistance(idx?: number): number;
/**
* Determines whether this polyline intersects a given geometry.
* @param {geometry} geom Geometry to test against.
* @returns {boolean} Result of the intersection test.
*/
intersects(geom: geometry): boolean;
}
/**
* A polyline object which is a closed path geometry with one or more paths.
* @class polygon
*/
class polygon extends geometry {
constructor(geom: geometry);
/**
* Gets the underlying geometry of the polygon.
* @returns {geometry} The polygon's underlying geometry object.
*/
getGeometry(): geometry;
/**
* Creates a new polygon object from a deep copy of the underlying geometry.
* @returns {polygon} Thew new cloned polygon.
*/
clone(): polygon;
/**
* Gets number of rings in this polygon.
* @returns {number} Number of rings.
*/
getRingCount(): number;
/**
* Gets a ring from this polygon's set collection by index, or,
* if no index is provided, gets the last ring.
* @param {number} [idx] Index of the ring to return.
* @returns {number[]} A ring as an array of points in the form [xn,yn].
*/
getRing(idx: number): number[];
/**
* Adds a new ring to this polygon's ring collection.
* @param {number[]} s Ring to add as an array of points in the form [xn,yn].
*/
pushRing(s: number[]): void;
/**
* Gets the last ring in the polygon's ring collection and removes it
* from the collection.
* @returns {number} Ring removed as an array of points in the form [xn,yn].
*/
popRing(): number[];
/**
* Calculates area of a ring in a polygon by index according
* to projected map cooordinates. If no index is provided, uses
* the last ring in the polygon's ring collection.
* @param {number} [idx] Index of the ring for which to compute the area.
* @returns {number} Area in square projected units of the ring.
*/
getProjectedArea(idx: number): number;
/**
* Calculates perimeter of a ring in a polygon by index according
* to projected map cooordinates. If no index is provided, uses
* the last ring in the polygon's ring collection.
* @param {number} [idx] Index of the ring for which to compute the perimeter.
* @returns {number} Length in projected units of the distance of the ring.
*/
getProjectedPerimeter(idx: number): number;
/**
* Calculates area of a ring in a polygon by index according
* to the actual area. If no index is provided, uses the last ring
* in the polygon's ring collection.
* @param {number} [idx] Index of the ring for which to compute the area.
* @returns {number} Area in square meters of the ring.
*/
getActualArea(idx?: number): number;
/**
* Calculates perimeter of a ring in a polygon by index according
* to actual distance. If no index is provided, uses the last ring
* in the polygon's ring collection.
* @param {number} [idx] Index of the ring for which to compute the perimeter.
* @returns {number} Length in meters of the perimeter of the ring.
*/
getActualPerimeter(idx?: number): number;
/**
* Determines whether this polygon intersects a given geometry.
* @param {geometry} geom Geometry to test against.
* @returns {boolean} Result of the intersection test.
*/
intersects(geom: geometry): boolean;
/**
* Determines whether this polyline overlaps a given geometry.
* @param {geometry} geom Geometry to test against.
* @returns {boolean} Result of the intersection test.
*/
overlaps(poly: polygon): boolean;
/**
* Convert this polygon into an array of OGC compliant polygons where
* the first set is a ring and all subsequent contained sets are holes.
* @returns {polygon[]} An array of OGC polygons.
*/
toMultiPolygon(): polygon[];
}
}
/**
* A style specification for geometry objects.
* @class geometryStyle
*/
export class geometryStyle {
constructor(options?: styleObj);
/**
* Gets path outline thickness in pixels.
* @returns {number} Thickness of path outline.
*/
getOutlineThicknessPix(): number;
/**
* Sets path outline thickness in pixels.
* @param {number} t Desired thickness.
*/
setOutlineThicknessPix(t: number): void;
/**
* Gets path outline color as a CSS style string.
* @returns {string} Outline color as a CSS style string.
*/
getOutlineColor(): string;
/**
* Sets path outline color from a CSS style string.
* @param {string} c Outline color as a CSS style string.
*/
setOutlineColor(c: string): void;
/**
* Gets path outline opacity in decimal format.
* @returns {number} Outline opacity.
*/
getOutlineOpacity(): number;
/**
* Set path outline opacity to a decimal between 0 and 1.
* @param {number} o Outline opacity.
*/
setOutlineOpacity(o: number): void;
/**
* Gets fill color as a CSS style string.
* @returns {string} Fill color as a CSS style string.
*/
getFillColor(): string;
/**
* Sets fill color as a CSS style string.
* @param {string} c Fill color as a CSS style string.
*/
setFillColor(c: string): void;
/**
* Gets fill opacity in decimal format.
* @returns {number} Fill opacity.
*/
getFillOpacity(): number;
/**
* Sets fill opacity to a decimal between 0 and 1.
* @param {number} o Fill opacity.
*/
setFillOpacity(o: number): void;
/**
* Gets the dash array as a string.
* @returns {string} Dash array as astring.
*/
getDashArray(): string;
/**
* Sets dash array string from a CSS style string. Defaults to solid
* stroke if no dash array string is provided.
* @param {string} [da] Dash array as a CSS style string.
*/
setDashArray(da: string): void;
}
/**
* Gets the mapsjs license.
* @returns {string} The license.
*/
export var license: string;
/**
* A simple point class with x and y coordinates.
* @class point
*/
export class point {
constructor(x: number, y: number);
/**
* Returns the x coordinate.
* @returns {number} The x coordinate.
*/
getX(): number;
/**
* Returns the y coordinate.
* @returns {number} The y coordinate.
*/
getY(): number;
/**
* Returns the x and y coordinates of this point as a pointObject.
* @returns {pointObject} Representaton of this point as an pointObject.
*/
toProps(): pointObject;
/**
* Equality comparer between this point and a given reference point.
* @param {point} pt Reference point.
* @returns {boolean} Result of the equality test.
*/
equals(pt: point): boolean;
/**
* Creates a point from this point offset by a given x and y distance.
* @param {number} dx The x offset.
* @param {number} dy The y offset.
* @returns {point} The offset point.
*/
createOffsetBy(dx: number, dy: number): point;
/**
* Creates new n-sided polygon around this point.
* @param {number} sides Number of polygon sides.
* @param {number} radius Distance to polygon points.
* @returns {polygon} The generated polygon.
*/
convertToPoly(side: number, radius: number): geometry.polygon;
/**
* Gets the wkt representation of this point.
* @returns {string} The well known text for this point.
*/
toString(): string;
/**
* Creates a deep copy of this point.
* @returns {point} The new cloned point.
*/
clone(): point;
/**
* Returns this point's bounding box.
* @returns {envelope} The bounding box of the point as an envelope.
*/
getBounds(): envelope;
/**
* Computes distance between this point and a given point in projected
* map units.
* @param {point} pt Point to which to compute distance.
* @returns {number} Distance from this point to the given point in
* projected map units.
*/
distanceTo(pt: point): number;
}
/**
* Exposes static functions that act on points.
* @module point
*/
export module point {
/**
* Computes the distance between two points in coordinate units.
* @param {number} x1 The x coordinate for the first point.
* @param {number} y1 The y coordinate for the first point.
* @param {number} x2 The x coordinate for the second point.
* @param {number} y2 The y coordinate for the second point.
* @returns {number} Distance in coordinate units.
*/
export function distance(x1: number, y1: number, x2: number, y2: number): number;
/**
* Computes the midpoint of two points.
* @param {number} x1 The x coordinate for the first point.
* @param {number} y1 The y coordinate for the first point.
* @param {number} x2 The x coordinate for the second point.
* @param {number} y2 The y coordinate for the second point.
* @return {point} Midpoint point.
*/
export function midpoint(x1: number, y1: number, x2: number, y2: number): point;
}
/**
* Exposes static functions related to the Spherical Mercator projection.
* @module sphericalMercator
*/
export module sphericalMercator {
/**
* Gets the EPSG number for Spherical Mercator.
* @return {number} ESPG number.
*/
export function getEpsg(): number;
/**
* Gets the minimum zoom level for this projection.
* @returns {number} Minimum zoom level.
*/
export function getMinZoomLevel(): number;
/**
* Sets the minimum zoom level for this projection. Normally this is
* set to 1.0 and should not be altered.
* @param {number} minZ Desired minimum zoom level.
*/
export function setMinZoomLevel(minZ: number): void;
/**
* Gets the maxmimum zoom level for this projection.
* @returns {number} Maximum zoom level.
*/
export function getMaxZoomLevel(): number;
/**
* Sets the maximum zoom level for this projection. Normally this is
* set to 20.0 and should not be altered.
* @param {number} maxZ1 Desired maximum zoom level.
*/
export function setMaxZoomLevel(maxZ: number): void;
/**
* Gets the tile height and width in pixels.
* @returns {number} The height and width of the tiles in pixels.
*/
export function getTileSizePix(): number;
/**
* Gets the display DPI, which defaults to 96. Note: The dpi is
* recomputed on page load complete.
* @returns {number} Dots per inch on display.
*/
export function getDpi(): number;
/**
* Set the display DPI, which defaults to 96. Note: The DPI is
* recomputed on page load complete.
* @param {number} dpi Dots per inch on display.
*/
export function setDpi(dpi: number): void;
/**
* Return the equitorial radius in meters for this projection.
* @returns {number} Equitorial radius in meters.
*/
export function getRadius(): number;
/**
* Returns equitorial circumference in meters for this projection
* @returns {number} Equitorial circumference in meters.
*/
export function getCircumference(): number;
/**
* Returns half the equitorial circumference in meters for this projection
* @returns {number} Half of the equitorial circumference in meters.
*/
export function getHalfCircumference(): number;
/**
* Get the envelope in map units for a given quadtree node, i.e. tile,
* based on the given x, y, and z quadtree coordinates.
* @param {number} x The x coordinate.
* @param {number} y The y coordinate.
* @param {number} z The z coordinate.
* @returns {envelope} Envelope of the tile in map units.
*/
export function getQuadTreeNodeToMapEnvelope(x: number, y: number, z: number): envelope;
/**
* Gets the envelope in map units of tiles in the quadtree from an
* evelope in map units and a zoom level.
* @param {envelope} env Envelope for which to find intersecting tiles.
* @param {number} z Zoom level with which to test for intersection.
* @returns {envelope} The envelope in map units of the tiles.
*/
export function getQuadTreeNodeRangeFromEnvelope(env: envelope, z: number): envelope;
/**
* Gets projected map units per pixel for a given zoom level.
* @param {number} zoomLevel Reference zoom level.
* @returns {number} Projection units per pixel.
*/
export function getProjectionUnitsPerPixel(zoomLevel: number): number;
/**
* Gets the required scale transform to apply to shapes so distance
* and area computations yield actual Earth-geodesic units instead of
* projected map units.
* @param {number} mapPtY Reference latitude for the computation.
* @returns {number} Scale transform multiplier.
*/
export function getActualShapeScaleTransform(mapPtY: number): number;
/**
* Gets actual, on-the-ground meters per pixel for a given zoom level
* and map point in map units.
* @param {point} mapPt Reference location for the computation.
* @param {number} z Reference zoom level.
* @returns {number} Meters per pixel multiplier.
*/
export function getActualUnitsPerPixel(mapPt: point, zoomLevel: number): number;
/**
* Gets the optimal zoom level for a given envelope in map units
* based on the envelope of visible device area in pixels.
* @param {envelope} envelopeMap Envelope in map units to display.
* @param {envelope} envelopeDevice Envelope in pixels of visible area.
* @returns {number} Optimal zoom level for viewing envelopeMap.
*/
export function getBestFitZoomLevelByExtents(envelopeMap: envelope, envelopeDevice: envelope): number;
/**
* Gets a quad-key from x, y, and z coordinates.
* @param {number} x The x coordinate.
* @param {number} y The y coordinate.
* @param {number} z The z coordinate.
* @returns {string} Quad-key string.
*/
export function getQuadKeyFromXYZ(x: number, y: number, z: number): string;
/**
* Gets x, y, and z coordinates as an object from a given quad-key.
* @param {string} key Reference quad-key.
* @return {object} JavaScript object of the form {x,y,z}.
*/
export function getXYZFromQuadKey(key: string): { x: number; y: number; z: number; };
/**
* Project a point from latitude/longitude to Spherical Mercator.
* @param {point} lonLat Point object in latitude/longitude.
* @returns {point} The same point in Spherical Mercator.
*/
export function projectFromLatLon(lonLat: point): point;
/**
* Project a point from Spherical Mercator to latitude/longitude.
* @param {point} mapPt Point object in Spherical Mercator.
* @returns {point} The same point in latitude/longitude.
*/
export function deprojectToLatLon(mapPt: point): point;
}
/**
* A geometry object decorated with a geometry style object
* @class styledGeometry
*/
export class styledGeometry {
constructor(geom: geometry, gStyle?: geometryStyle);
/**
* Set this styledGeometry's geometry.
* @param {geometry} g A new Geometry.
*/
setGeometry(g: geometry): void;
/**
* Set this styledGeometry's geometryStyle.
* @param {geometryStyle} gs A new styledGeometry.
*/
setGeometryStyle(gs: geometryStyle): void;
/**
* Gets the styledGeometry's underlying geometry object.
* @returns {geometry} The underlying geometry.
*/
getGeometry(): geometry;
/**
* Gets the styledGeometry's underlying geometryStyle object.
* @returns {geometryStyle} The underlying geometry style.
*/
getGeometryStyle(): geometryStyle;
/**
* Gets path outline thickness in pixels.
* @returns {number} Thickness in pixels.
*/
getOutlineThicknessPix(): number;
/**
* Sets path outline thickness in pixels.
* @param {number} t Thickness in pixels.
*/
setOutlineThicknessPix(t: number): void;
/**
* Gets path outline color as a CSS style string.
* @returns {string} Outline color as a CSS style string.
*/
getOutlineColor(): string;
/**
* Gets path outline opacity in decimal format.
* @param {number} Outline opacity.
*/
setOutlineColor(c: string): void;
/**
* Gets path outline opacity in decimal format.
* @returns {number} Outline opacity.
*/
getOutlineOpacity(): number;
/**
* Set path outline opacity to a decimal between 0 and 1.
* @param {number} o Outline opacity.
*/
setOutlineOpacity(o: number): void;
/**
* Gets fill color as a CSS style string.
* @returns {string} Fill color as a CSS style string.
*/
getFillColor(): string;
/**
* Sets fill color as a CSS style string.
* @param {string} c Fill color as a CSS style string.
*/
setFillColor(c: string): void;
/**
* Gets fill opacity in decimal format.
* @returns {number} Fill opacity.
*/
getFillOpacity(): number;
/**
* Sets fill opacity to a decimal between 0 and 1.
* @param {number} o Fill opacity.
*/
setFillOpacity(o: number): void;
/**
* Gets the dash array as a string.
* @returns {string} Dash array as astring.
*/
getDashArray(): string;
/**
* Sets dash array string from a CSS style string. Defaults to solid
* stroke if no dash array string is provided.
* @param {string} [da] Dash array as a CSS style string.
*/
setDashArray(da: string): void;
/**
* Gets optional animation function called when SVG node is created.
* @returns {function} Function with the signature animation(pathElement, loopback).
*/
getAnimation(): (pathElement: HTMLElement, loopback: () => void) => void;
/**
* You can use the loopback parameter on complete to call itself and
* create repeating animation.
* @param {function} Function with the signature animation(pathElement, loopback).
*/
setAnimation(action: (pathElement: HTMLElement, loopback: () => void) => void): void;
/**
* Renders this geometry as an SVG path. Note: We attach original
* geometry bounds to svg doc as an expando.
* @param {string} key Identifer to keep track of the SVG DOM element.
* @param {number} mupp Map units per pixel with which to create the SVG element.
* @returns {HTMLElement} A new SVG document root.
*/
createSvgPathElement(key: string, mapUnitsPerPix: number): HTMLElement;
/**
* Renders this to a canvas context.
* @param {CanvasRenderingContext2D} ctx Canvas context to which to render.
*/
renderPathToCanvasContext(ctx: CanvasRenderingContext2D): void;
}
/**
* The mapjs version.
*/
export var version: string;
/**
* Exposes static functions for working with well known text.
* @module wkt
*/
export module wkt {
/**
* Parses WKT as a point.
* @param {string} w A WKT string.
* @returns {point} The parsed point.
*/
export function parsePoint(wkt: string): point;
/**
* Parses WKT as a multipoint.
* @param [string} w A WKT string.
* @retuns {geometry} The parsed multipoint geometry.
*/
export function parseMultiPoint(wkt: string): geometry;
/**
* Parses WKT as an open path geometry with a single set.
* @param {string} w A WKT string.
* @returns {geometry} The parsed open path geometry.
*/
export function parseLineString(wkt: string): geometry;
/**
* Parses WKT as an open path geometry with multiple sets.
* @param {string} w A WKT string.
* @returns {geometry} The parsed open path geometry.
*/
export function parseMultiLineString(wkt: string): geometry;
/**
* Parses WKT as a closed path geometry with a single set.
* @param {string} w A WKT string.
* @returns {geometry} The parsed closed path geometry.
*/
export function parsePolygon(wkt: string): geometry;
/**
* Parses WKT as a closed path geometry with multiple sets.
* @param {string} w A WKT string.
* @returns {geometry} The parsed closed path geometry.
*/
export function parseMultiPolygon(wkt: string): geometry;
/**
* Parses WKT as a geometry and determines its type from the string.
* @param {string} w The WKT string.
* @returns {any} The parsed shape, a point, geometry, or an array of
* polygons depending on the WKT.
*/
export function parse(wkt: string): any;
/**
* Converts an array of polygons to an OGC compliant multipolygon WKT string.
* @param {polygon[]} polys Set of polygons to parse into WKT.
* @returns {geometry} The OGC compliant WKT for the polygons.
*/
export function toMultiPolygonString(polys: geometry.polygon[]): string;
}
/**
* Exposes various tile-related constructors, including layers, descriptors,
* and requestors.
* @module tile
*/
export module tile {
/**
* A tile layer is a view on the map containing an array of rectangular content.
* @class layer
*/
export class layer {
constructor(id: string, useBackdrop?: boolean, maxConcurrentRequests?: number);
/**
* @param {number} m - number for margin in pixels
*/
// setContentExtentsMarginInPixels(m: number): void;
/**
* Gets ID associated with this tile layer.
* @returns {string} ID of the layer.
*/
getId(): string;
/**
* Determines whether this tile layer uses a backdrop.
* @returns {boolean} Whether or not the layer uses a backdrop.
*/
getUseBackdrop(): boolean;
/**
* Returns the tile layer's descriptor, which describes how
* requested content is rendered or styled.
* @returns {object} The tile layer's descriptor.
*/
getDescriptor(): any;
/**
* Sets the tile layer's descriptor, which describes how requested
* content is rendered or styled.
* @param {function} d A descriptor for this tile layer.
*/
setDescriptor(d: any): void;
/**
* Notifies the tile layer to check for changes to its descriptor.
*/
notifyDescriptorChange(): void;
/**
* Returns this tile layer's requestor which defines what kind of
* content to get and where to get it.
* @returns {requestor} This tile layer's requestor.
*/
getRequestor(): tile.requestor;
/**
* Sets this tile layer's requestor, which defines what kind of
* content to get and where to get it.
* @param {tile.requestor} req A requestor object.
* @param {tile.requestor} [desc] Descriptor object so that both
* can be set in one call and incur only one content change event.
*/
setRequestor(req: tile.requestor, desc?: any): void;
/**
* Returns this tile layer's renderer if it exists, which defines
* how geometry data for a quadView is rendered.
* @returns {renderer} The renderer object.
*/
getRenderer(): tile.renderer;
/**
* Sets optional renderer which defines how geometry data for
* quadView is rendered.
* @param {renderer} r The renderer delegate function with
* signature renderer(quadview).
*/
setRenderer(r: any): void;
/**
* Notifies the tile layer to check for changes to its renderer.
*/
notifyRendererChange(): void;
/**
* Gets the visibility state of this tile layer.
* @returns {boolean} Whether or not this layer is visible.
*/
getIsVisible(): boolean;
/**
* Sets visibility state of this tile layer.
* @param {boolean} v Whether this layer should be visible or not.
*/
setIsVisible(v: boolean): void;
/**
* Gets the opacity of this tile layer.
* @returns {number} Opacity as a decimal.
*/
getOpacity(): number;
/**
* Sets opacity of this tile layer.
* @param {number} o Opacity as a decimal.
*/
setOpacity(o: number): void;
/**
* Gets minimum zoom level where this tile layer is visible.
* @returns {number} The minimum zoom level.
*/
getMinZoomLevel(): number;
/**
* Sets minimum zoom level where this tile layer is visible.
* @param {number} minZ The desired minimum zoom level.
*/
setMinZoomLevel(minZ: number): void;
/**
* Gets maximum zoom level where this tile layer is visible.
* @returns {number} The maximum zoom level.
*/
getMaxZoomLevel(): number;
/**
* Sets maximum zoom level where this tile layer is visible.
* @param {number} maxZ The desired maximum zoom level.
*/
setMaxZoomLevel(maxZ: number): void;
/**
* Sets pixel bleed on quadTiles, which defaults to 1. Setting this
* to zero for overlay layers with translucent polygon fills is
* recommended. Bleed overlap can create faint lines at tile
* boundries when fill is not opaque.
* @param {number} bleed The number of pixels to bleed.
*/
setTileBleedPix(bleed: number): void;
/**
* Sets whether or not to retain and display previous level tile
* content as you change tile levels to provide a nice zoom level
* change effect. Once the next level is loaded the old level
* content is always discarded. This should be set to false if there
* is translucent content to display. Defaults to true (prior to
* version 9.0.0001 this value had the same state as useBackdrop.)
* @param {boolean} ret Whether or not to retain interlevel content.
*/
setRetainInterlevelContent(retain: boolean): void;
/**
* Enables or disables the fade in on tile content, which defaults to enabled.
* @param {boolean} fadeIn Whether or not fade in on tile content
* should be enabled.
*/
setEnableTileFadeIn(fadeIn: boolean): void;
/**
* Sets the default action to take on error.
* @param {function} action Function to execute on error.
*/
setNotifyErrorAction(action: () => void): void;
/**
* Sets an optional function to be called when the tile loading
* queue for this layer has emptied.
* @param {function} action Callback function.
*/
setNotifyLoadingQueueHasEmptiedAction(action: () => void): void;
/**
* Sets the optional function to be called by this layer's tile
* loader during processing. The supplied progress function takes
* tiles loaded and tiles total parameters.
* @param {function} action Callback of the signature action(tileLoaded, tilesTotal).
*/
setNotifyLoadingQueueProgressAction(action: (tilesLoaded: number, tilesTotal: number) => void): void;
/**
* Sets optional request processor for this tile layer. This is
* an advanced feature allowing developers to tap into tile
* request pipeline for purposes of customizing requests or manage
* custom caching. This is also the mechanism used for offline
* apps with frameworks such as phonegap.
* @param {function} Processor function with signature
* processor(requestor, descriptor, quad, timeoutMs, complete, error)
*/
setRequestProcessor(processorFunc: (
requestor: tile.requestor,
descriptor: any,
quad: tile.quad,
timeoutMs: number,
completeAction: (img: HTMLElement) => void,
errorAction: (msg: string) => void) => void): void;
/**
* Instructs the tile loader to populate a specified tile pyramid.
* This is used to fetch content (e.g. bitmap tiles) and preload
* it into the browser cache.
* @param {envelope} extents Envelope for which to fetch content.
* @param {number} startZoomLevel Minimum zoom level for which to
* fetch content.
* @param {number} endZoomLevel Maximum zoom level for which to
* fetch content.
*/
preload(extents: envelope, startZoomLevel: number, endZoomLevel: number): void;
/**
* Composes an array of quadtiles with composition information and
* requestor endpoints. This can be used to create static images
* or print-ready versions of this tile layer at arbitrary extents
* (both source and target) For example: If you needed a 5x3 inch
* 300 dpi output you can specify extents in device units to be
* 1500x900. This function determines the correct zoom level so
* that the source extents fits in the target extents to the
* nearest integer zoom level.
* @param {envelope} extentsMapUnits Source extents in map units.
* @param {envelope} extentsDeviceUnits Target extents in pixels.
* @returns {object} Composed object in the form
* {quadCollection, endpointCollection, idxMinX, idxMinY, ulX, ulY }
* where quadCollection is an array of quad objects, endpointCollection
* is an array of REST endpoints from which to obtain the tiled content,
* idxMinX and idxMinY are the minimum x and y tile indicies of the
* collection respectively, and ulX and ulY are the offset in pixels
* of the upper left tile from the upper left target extents.
*/
compose(extentsMapUnits: envelope, extentsDeviceUnits: envelope): {
quadCollection: tile.quad[];
endpointCollection: string[];
idxMinX: number;
idxMinY: number;
ulX: number;
ulY: number;
};
/**
* Unbind all associations with this tile layer to facilitate garbage collection
*/
dispose(): void;
}
/**
* A layerOptions object is a method for constructing a tile layer for
* immediate use, for example by passing it to the jQuery widget or
* in the knockout binding.
* @class layerOptions
*/
export class layerOptions {
constructor(id: string, options: {
useBackdrop?: boolean;
maxConcurrentRequests?: number;
requestor?: tile.requestor;
descriptor?: any;
renderer?: tile.renderer;
requestProcessor?: any;
visible?: boolean;
opacity?: number;
minZoomLevel?: number;
maxZoomLevel?: number;
tileBleedPix?: number;
retainInterlevelContent?: boolean;
enableTileFadeIn?: boolean;
notifyErrorAction?: (msg?: string) => void;
notifyLoadingQueueHasEmptiedAction?: () => void;
});
/**
* Returns the underlying tile layer.
* @returns {layer} The underlying tile layer.
*/
getTileLayer(): tile.layer;
/**
* Gets ID associated with the underlying tile layer.
* @returns {string} ID of the layer.
*/
getId(): string;
/**
* Gets this layerOptions object as a JavaScript object.
*/
getOptions(): any;
}
/**
* The quad class represents a quad tile within three dimensional
* coordinate space.
* @class quad
*/
export class quad {
/**
* Gets the x coodinate of this quad tile.
* @returns {number} The x coordinate of this quad tile.
*/
getX(): number;
/**
* Gets the y coordinate of this quad tile.
* @returns {number} The y coordinate of this quad tile.
*/
getY(): number;
/**
* Gets the z coordinate of this quad tile, or depth.
* @returns {number} The z coordinate of this quad tile.
*/
getLevel(): number;
/**
* Gets the envelope in map units which encompasses this quad tile.
* @returns {envelope} The encompassing envelope of this quad tile.
*/
getEnvelope(): envelope;
/**
* Gets the string representation of this quad tile as a quad key.
* @returns {string} Quad key for this quad tile as a string.
*/
toString(): string;
/**
* Gets the quad key for this quad tile as a string.
* @returns {string} Quad key for this quad tile as a string.
*/
getKey(): string;
/**
* Compares this quad tile with another quad tile and determines
* whether or not they are equal.
* @param {quad} Quad tile with which to check for equality with this quad tile.
* @returns {boolean} Result of the equality test.
*/
equals(q: quad): boolean;
/**
* Generates the quad tile which is a given number of levels above
* this tile in the pyramid and in which this quad tile is contained.
* @param {number} ancestorsBack Number of levels above this tile the
* generated tile should be.
* @returns {quad} The generated parent tile.
*/
factoryParent(ancestorsBack: number): quad;
}
/**
* Exposes static functions for generating and handling quad tiles.
* @module quad
*/
export module quad {
/**
* Generates a new quad tile based on a given quad key.
* @param {string} key The quad key from which to generate the quad tile.
* @returns The generated quad tile.
*/
export function factoryQuadFromKey(key: string): quad;
}
/**
* A tile renderer handles converting JSON vector content loaded from the
* MapDotNet REST feature service into a canvas rendering on a tile.
* @class renderer
*/
export class renderer {
constructor(options? : {
renderPoint?: (pt: point, context: CanvasRenderingContext2D) => void;
renderGeometry?: (shape: geometry, context: CanvasRenderingContext2D) => void;
renderBitmap?: (img: HTMLElement, context: CanvasRenderingContext2D, contextSize: number, bleed: number) => void;
});
/**
* Sets the render point function which takes a point and canvas
* context and renders the point to the canvas. The points passed
* in are transformed to pixel units and offset to context origin.
* @param {function} func Function of the form func(shape, context)
* where shape is the point object to be rendered and context is the
* canvas context on which to render.
*/
setRenderPoint(func: (pt: point, context: CanvasRenderingContext2D) => void): void ;
/**
* Sets render geometry function which takes a geometry and canvas
* context and renders the geometry to the canvas context. The
* geometries passed in are transformed to pixel units and offset
* to the context origin.
* @param {function} func Function with signature func(shape, context)
* where shape is the geometry to render and context is the canvas
* context on which to render.
*/
setRenderGeometry(func: (shape: geometry, context: CanvasRenderingContext2D) => void): void;
/**
* Sets the render bitmap function which takes a bitmap image and
* a canvas context and renders the image to the canvas context.
* @param {function} func Function with the signature
* func(img, context, contextSize, bleed) where img is the bitmap
* image to render, context is the canvas context on which to
* render the image, contextSize is the size of the canvas context
* in pixels and bleed is the margin around each tile to bleed.
*/
setRenderBitmap(func: (img: HTMLElement, context: CanvasRenderingContext2D, contextSize: number, bleed: number) => void): void;
}
/**
* An auto-ranging density map renderer.
* @class rendererDensityMap
*/
export class rendererDensityMap {
constructor();
/**
* Sets the bleed ratio, which is the sets the percentage of the
* margin around each tile to use in the tile's computation. Note:
* some bleed (i.e., greater than 1) is required since a heat map
* relies on adjacent data.
* @param {number} bleed The desired bleed ratio.
*/
setBleed(bleed: number): void;
/**
* Sets the number of rows and columns of cells to be used for
* computation within the grid.
* @param {number} gridSize Number of rows and columns used in
* the grid.
*/
setGridSize(gridSize: number): void;
/**
* Sets filter radius corresponding to standard deviations. The
* filter radius is the cutoff point at which adjacent cells no
* longer contribute to a cell's calculation.
* @param {number} filterStdDevRadius Number of standard deviations
* from the mean of a normal distribution to which to give positive
* weight.
*/
setFilterStdDevRadius(filterStdDevRadius: number): void;
/**
* Sets color ranges from cold to hot for the renderer.
* @param {number[][]} matrix Array of arrrays of numbers, each
* of the form [r,g,b,a], where each array represents a color and
* colors range from cold to hot. Note: Typically, a dozen colors
* is sufficient.
*/
setColorMatrix(matrix: number[][]): void;
/**
* Sets the minimum required cell value for a cell to receive
* a color. Default minimum value is 0.
* @param {number} mcv The minimum cell value for painting.
*/
setMinCellValue(min: number): void;
/**
* Sets an optional action to perform on each row. This enables
* processing the values on one or more columns for each row for
* use in the density map computations.
* @param {action} ra Function to call on each row with signature
* action(row). The value returned from the function will is added
* to the cell's value.
*/
setRowAction(action: (row: any) => number): void;
/**
* Tells renderer to re-render density map and recompute ranges.
* This should be called if the data changes or if, due to extent
* changes, the density changes.
*/
notifyRecompute(extents?: envelope): void;
}
/**
* This is a base requestor class.
* @class requestor
*/
export class requestor {
constructor();
/**
* Gets formatted endpoint using the supplied quadtile and a descriptor.
* @param {quad} quad Quadtile for which to fetch the endpoint.
* @returns {string} The requested URI string.
*/
getFormattedEndpoint(quad: quad, descriptor: any): string;
/**
* Gets data locally if the requestor supports it.
* @param {quad} quad Quadtile for which to fetch the endpoint.
* @returns {string} The requested JSON data.
*/
getLocalData(quad: quad, descriptor: any): string;
/**
* Creates unique sha1 hash from this requestor and the supplied
* descriptor. This is useful in creating a unique key or folder
* for tile caching. This combined with a tile's quad-key can
* efficiently and uniquely identify a particular tile.
* @params {descriptor} The descriptor for which to create the hash.
* @returns {string} The generated sha1 hash.
*/
hash(descriptor: any): string;
/**
* Determines whether or not this requestor returns bitmap images.
* @returns {boolean} Whether or not this requestor returns bitmap
* images.
*/
getIsRestImage(): boolean;
/**
* Sets whether this requestor should return bitmap images.
* @param {boolean} flag Whether or not this requestor should return
* bitmap images.
*/
setIsRestImage(flag: boolean): void;
/**
* Determines whether or not this requestor uses an endpoint
* rather than local data.
* @returns {boolean} Whether or not this requestor gets data from
* an endpoint.
*/
getUsesEndpoint(): boolean;
/**
* Sets whether or not this requestor uses an endpoint rather than
* local data.
* @param {boolean} Whether or not this requestor should get data
* from an endpoint.
*/
setUsesEndpoint(flag: boolean): void;
/**
* Gets format of data returned by REST service.
* @returns {string} Data format returned by the REST service.
*/
getDataFormat(): string;
/**
* Sets format of data that should be returned by REST service.
* @param {string} df Name of the data format the REST service
* should use.
*/
setDataFormat(df: string): void;
/**
* Returns whether or not caching is enabled for vector-based
* requestors.
* @returns {boolean} Whether or not caching is enabled.
*/
getCacheEnabled(): boolean;
/**
* Sets whether or not caching is enabled for vector-beased requestors.
* @param {boolean} flagce - true (default) if caching is enabled
*/
setCacheEnabled(flag: boolean): void;
/**
* Gets requestor timeout in miliseconds.
* @returns {number} Requestor timeout in miliseconds.
*/
getTimeoutMs(): number;
/**
* Sets requestor timeout in miliseconds.
* @param {number} ms Desired requestor timeout in miliseconds.
*/
setTimeoutMs(ms: number): void;
/** ???
* Gets the additional
* @returns {object[]}
*/
getKeyVals(): {}[];
/** Set any key/value pairs that are attached to the ajax call (such as username and password)
*/
setKeyVals(options: {}[]): void;
/**
* Gets maximum available zoom level content that can be retrieved
* from the endpoint this requestor consumes.
* @returns {number} The maximum available zoom level for this requestor.
*/
getMaxAvailableZoomLevel(): number;
/**
* Sets maximum available zoom level content that can be retrieved
* from the endpoint this requestor consumes. Note: This defaults
* to the projection's maximum available zoom level, which is 20
* in spherical mercator.
* @param {number} max The maximum available zoom level for this requestor.
*/
setMaxAvailableZoomLevel(max: number): void;
}
/**
* A tile requestor for Microsoft Bing maps.
* @class requestorBing
*/
export class requestorBing extends requestor {
constructor(options?: {
dataFormat?: string;
timeoutMs?: number;
maxAvailableZoomLevel?: number;
});
/**
* Gets the formatted endpoint uri for Bing maps, e.g.
* ecn.t{0}.tiles.virtualearth.net/tiles/{1}{2}{3}?g={4}&mkt={5}&shading=hill.
* @returns {string} endpoint to Bing tile server as a formatted string
*/
getEndpoint(): string;
/**
* Gets the protocol for the endpoint, either 'http' or 'https'.
* @returns {string} The endpoint protocol.
*/
getScheme(): string;
/**
* Sets endpoint protocol to either 'http' or 'https'.
* @param {string} s Protocol to use in endpoints.
*/
setScheme(s: string): void;
/**
* Gets Bing tile generation
* @returns {string} the tile generation as an integer
*/
getGeneration(): string;
/**
* Sets Bing tile generation
* @param {string} g - generation as an integer
*/
setGeneration(g: string): void;
/**
* Gets the language code for which the tiles are rendered. The
* default code is 'en-US'.
* @returns {string} The language code for which tiles are rendered.
*/
getMarket(): string;
/**
* Sets language code for which to render tiles. For example,
* 'en-US'.
* @param {string} m Language code for which to render tiles.
*/
setMarket(m: string): void;
/**
* Gets the Bing key associated with this requestor.
* @returns {string} The Bing key for this requestor.
*/
getBingKey(): string;
/**
* Sets Bing key which then calls Microsoft metadata service and
* automatically configures content endpoint.
* @param {string} key Bing key.
*/
setBingKey(key: string): void;
}
/**
* The bitmap or vector tile requestor using MapDotNet REST services.
* @class requestorMDN
*/
export class requestorMDNRest extends requestor {
constructor(endpoint: string, options?: {
dataFormat?: string;
timeoutMs?: number;
maxAvailableZoomLevel?: number;
});
/**
* Gets uri endpoint for the MapDotNet REST service.
* @returns {string} Uri endpoint for the MapDotNet REST service.
*/
getEndpoint(): string;
}
/**
* Creates an instance of a descriptor for describing content from a
* MapDotNet UX REST map service.
* @class descriptorMDNRestMap
*/
export class descriptorMDNRestMap {
constructor(mapId: string, options?: {
version?: string;
imageType?: string;
bleedRatio?: number;
mapCacheOption?: string;
mapCacheName?: string;
useQuadKeyForMapCacheName?: boolean;
backgroundColorStr?: string;
layerVisibility?: {};
layerOutline?: {};
layerFill?: {};
layerWhere?: {};
tag?: string;
});
/**
* Sets the flag to suspend descriptor change notifications. If
* set true, all changes to this descriptor will not cause the map
* to redraw. Setting to false will enable redraws and immediately
* force a redraw.
* @param {boolean} flag Whether or not descriptor change notifications
* should be enabled.
*/
setSuspendDescriptorChangeNotifications(flag: boolean): void;
/**
* Gets the map ID.
* @returns {string} The map ID.
*/
getMapId(): string;
/**
* Gets the REST service version.
* @returns {string} The REST service version.
*/
getVersion(): string;
/**
* Sets the REST service version.
* @param {string} v The version number.
*/
setVersion(v: string): void;
/**
* Gets image type associated with this descriptor, either 'png',
* 'png8', or 'jpg'.
* @returns {string} The image type associated with this descriptor.
*/
getImageType(): string;
/**
* Gets image type associated with this descriptor to one of 'png',
* 'png8', or 'jpg'.
* @param {string} t The image type associated which should be
* associated with this descriptor.
*/
setImageType(t: string): void;
/**
* Gets bleed ratio for the layer associated with this descriptor.
* @returns {number} The bleed ratio.
*/
getBleedRatio(): number;
/**
* Sets the bleed ratio. Bleeds greater than 1.0 will fetch content
* beyond the edge of the tile extents (this is useful for point
* features).
* @param {number} br The desired bleed ratio, between 1.0 and 2.0.
*/
setBleedRatio(br: number): void;
/**
* Gets the map's cache setting, which is one of 'None',
* 'ReadOnly', 'ReadWrite', 'ForceWrite', and 'Default.'
* @returns {string} The map's cache setting.
*/
getMapCacheOption(): string;
/**
* Gets the map's cache setting to one of 'None',
* 'ReadOnly', 'ReadWrite', 'ForceWrite', and 'Default.'
* @param {string} mco The desired cache setting for the map.
*/
setMapCacheOption(mco: string): void;
/**
* Gets the optional map cache name.
* @returns {string} The map cache name.
*/
getMapCacheName(): string;
/**
* Sets the optional map cache name.
* @param {string} mcn The desired map cache name.
*/
setMapCacheName(mcn: string): void;
/**
* Determines whether the map is flagged to use the quadkey as its
* map cache name.
* @returns {boolean} Whether or not the map has been flagged to
* use the quadkey as its map cache name.
*/
getUseQuadKeyForMapCacheName(): boolean;
/**
* Sets the flag that uses the quadkey as its map cache name.
* @param {boolean} flag Whether or not the map should be flagged
* to use the quadkey as its map cache name.
*/
setUseQuadKeyForMapCacheName(flag: boolean): void;
/**
* Gets map image background color.
* @returns {string} CSS style string for the map image background color.
*/
getBackgroundColorStr(): string;
/**
* Sets the map image background color.
* @param {number} a Alpha level.
* @param {number} r Red level.
* @param {number} g Green level.
* @param {number} b Blue level.
*/
setBackgroundColor(a: number, r: number, g:number, b:number): void;
/**
* Checks whether or not the map background is transparent.
* @returns {boolean} Whether or not the map background is transparent.
*/
getIsBackgroundTransparent(): boolean;
/**
* Sets a layer's visibility.
* @param {string} layerId The MapDotNet map layer ID.
* @param {boolean} isVisible Whether or not the layer should be visible.
*/
setLayerVisibility(layerId: string, isVisible: boolean): void;
/**
* Gets a layer's visibility.
* @param {string} layerId The MapDotNet map layer ID.
* @returns {boolean} Whether or not the layer is visible.
*/
getLayerVisibility(layerId: string): boolean;
/**
* Sets a layer's outline color and thickness.
* @param {string} layerId The MapDotNet map layer ID.
* @param {number} a Alpha level.
* @param {number} r Red level.
* @param {number} g Green level.
* @param {number} b Blue level.
* @param {number} thk Outline thickness in pixels.
*/
setLayerOutline(layerId: string, a: number, r: number, g: number, b: number, thk: number): void;
/**
* Gets a layer's outline color and thickness.
* @param {string} layerId The MapDotNet map layer ID.
* @returns {object} JavaScript object of the form {color, thickness}
* where color is the CSS style string of the outline color and
* thickness is the outline thickness in pixels.
*/
getLayerOutline(layerId: string): { color: string; thickness: number; };
/**
* Sets a layer's fill color.
* @param {string} layerId The MapDotNet map layer ID.
* @param {number} a Alpha level.
* @param {number} r Red level.
* @param {number} g Green level.
* @param {number} b Blue level.
*/
setLayerFill(layerId: string, a: number, r: number, g: number, b: number): void;
/**
* Sets a layer's fill color as a SQL expression.
* @param {string} layerId The MapDotNet map layer ID.
* @param {string} exp The SQL expression to select a row's fill color.
*/
setLayerFillAsExpression(layerId: string, exp: string): void;
/**
* Gets a layer's fill color as a CSS style string or as a SQL expression.
* @param {string} layerId The MapDotNet map layer ID.
* @returns {string} Either the CSS style string or the SQL expression,
* according to how the layer's fill color was set.
*/
getLayerFill(layerId: string): string;
/**
* Add or replace the where clause for a layer. The where clause
* is a SQL expression used to filter rows.
* @param {string} layerId The MapDotNet map layer ID.
* @param {string} where The desired SQL where expression.
* @param {boolean} [merge] Whether to merge the new where clause
* with the existing where clause using a SQL AND or to replace
* the existing where clause with the new one. Defaults to true (merge).
*/
setLayerWhere(layerId: string, where: string, merge: boolean): void;
/**
* Sets a separator character for the layer where clause expression
* in the query string. This is set to ',' by default, which is
* consistent with SQL.
* @param {string} sep The desired seperator, which should be a
* single character.
*/
setLayerWhereSep(sep: string): void;
/**
* Returns the current separator for the layer where clause in the
* query string.
* @returns {string} The current seperator.
*/
getLayerWhereSep(): string;
/**
* Gets the current layer where clause.
* @param {string} layerId The MapDotNet map layer ID.
* @returns {string} The current where clause. If no where clause
* is in use, this will return an empty string.
*/
getLayerWhere(layerId: string): string;
/**
* Gets a tag which is used to modify the request URIs to avoid
* browser caching
* @returns {string} The map's tag.
*/
getTag(): string;
/**
* Sets the map's tag, which is used modify request URIs to avoid
* browser caching.
* @param {string} tag The desired tag.
*/
setTag(tag: string): void;
}
/**
* Creates an instance of a descriptor for describing content from
* a MapDotNet REST feature service.
* @class descriptorMDNRestFeature
*/
export class descriptorMDNRestFeature {
constructor(mapId: string, layerId: string, options?: {
version?: string;
bleedRatio?: number;
fieldNames?: string[];
clipToRenderBounds?: boolean;
simplifyEnabled?: boolean;
});
/**
* Gets the map ID.
* @returns {string} The map ID.
*/
getMapId(): string;
/**
* Gets the layer's ID.
* @returns {string} The layer's ID.
*/
getLayerId(): string;
/**
* Gets the version of the REST service.
* @returns {string} The REST service version.
*/
getVersion(): string;
/**
* Sets the REST service version number.
* @param {string} v The version number to set.
*/
setVersion(v: string): void;
/**
* Gets the bleed ratio.
* @returns {number} The current bleed ratio.
*/
getBleedRatio(): number;
/**
* Sets the bleed ratio. Bleeds greater than 1.0 will fetch content
* beyond the edge of the tile extents (this is useful for point features).
* @param {number} br The desired bleed ratio, a number between 1.0 and 2.0.
*/
setBleedRatio(br: number): void;
/**
* Gets the optional field names to query. This attribute data may
* be used in dynamic client-side rendering.
* @returns {string[]} An array of field names as strings.
*/
getFieldNames(): string[];
/**
* Sets the optional field names to query. This attribute data may be used in
* dynamic client-side rendering.
* @param {string} names - array of strings for each field to query
*/
setFieldNames(names: string[]): void;
/**
* Checks the flag whether to clip geometry fetched at the bounds
* of the request.
* @returns {boolean} The value of the flag.
*/
getClipToRenderBounds(): boolean;
/**
* Sets the flag whether to clip geometry fetched at the bounds
* of the request. This can greatly improve performance with large
* complex geometries. Only supported when back-end store is SQL
* 2008/2012 or PostGIS.
* @param {boolean} flag Whether or not to clip geometries fetched
* at the bounds of the request.
*/
setClipToRenderBounds(flag: boolean): void;
/**
* Checks the flag whether to simplify paths based on the units per
* pixel for the quad tile being requested.
* @returns {boolean} The value of the flag.
*/
getSimplifyEnabled(): boolean;
/**
* Sets the flag whether to simplify paths based on the units per
* pixel for the quad tile being requested.
* @param {boolean} flag Whether or not to simply paths based on
* the units per pixel.
*/
setSimplifyEnabled(flag: boolean): void;
/**
* Sets the action to perform on descriptor change.
* @param {function} action Function with signature action().
*/
setNotifyDescriptorChangeAction(action: () => void): void;
}
/**
* This is a generic tile requestor suitable for several third-party
* tile servers. These include open street map, map quest, cloudmade,
* Nokia, etc.
* @class requestorOpen
*/
export class requestorOpen extends requestor {
constructor(endpoint: string, subdomains: string[], options?: {
dataFormat?: string;
timeoutMs?: number;
maxAvailableZoomLevel?: number;
});
}
/**
* This is a requestor for local collections of data. These local collections may
* originate from inlined code or from datasources other than a MapDotNet REST
* feature service.
* @class requestorLocal
*/
export class requestorLocal extends requestor {
constructor(options?: {
dataFormat?: string;
timeoutMs?: number;
maxAvailableZoomLevel?: number;
data: {}[];
});
/**
* Gets the unparsed source data.
* @returns {object} Array of source data objects.
*/
getSource(): {}[];
/**
* Sets source data.
* @param {object} data An array of JavaScript objects to use as
* the requestor source data.
*/
setSource(data: {}[]): void;
/**
* Returns your source data parsed into theformat { Shapes: [],
* Values: [], Bounds: [] } This may be useful for doing client-side
* queries on the local data where all of the WKT has been parsed
* into points and geometry. There is also a bounds collection to
* do a quick spatial check for complex polygons.
* @returns {object} Parsed data object in the form {Shapes, Values, Bounds}.
*/
getParsedData(): {
Shapes: any[];
Values: any[];
Bounds: envelope[];
};
}
/**
* Local descriptor object for describing source data when the source
* data is fecthed by a local requestor.
* @class descriptorLocal
*/
export class descriptorLocal {
constructor(options: {
valueFieldNames: string[];
geometryFieldName: string;
bleedRatio?: number;
});
}
}
interface pointObject {
x: number;
y: number;
}
interface envObject {
/**
* @returns {number} minX as integer
*/
minX: number;
/**
* @returns {number} minY coord as integer
*/
minY: number;
/**
* @returns {number} maxX coord as integer
*/
maxX: number;
/**
* @returns {number} maxY coord as integer
*/
maxY: number;
}
interface extentChangeStatsObj {
centerX: number;
centerY: number;
centerLat: number;
centerLon: number;
zoomLevel: number;
mapScale: number;
mapScaleProjected: number;
mapUnitsPerPixel: number;
extents: envelope;
}
interface repositionStatsObj {
centerX: number;
centerY: number;
zoomLevel: number;
mapUnitsPerPixel: number;
}
interface beginDigitizeOptions {
key?: string;
shapeType: string;
geometryStyle?: geometryStyle;
styledGeometry?: styledGeometry;
nodeTapAndHoldAction?: (setIdx: number, idx: number) => boolean;
nodeMoveAction?: (x: number, y: number, actionType: string) => any;
shapeChangeAction?: () => void;
envelopeEndAction?: (env: envelope) => void;
circleEndAction?: (circle: geometry.polygon) => void;
suppressNodeAdd?: boolean;
leavePath?: boolean;
}
interface styleObj {
fillColor?: string;
fillOpacity?: number;
outlineColor?: string;
outlineOpacity?: number;
outlineThicknessPix?: number
dashArray?: string;
}
interface mapsjsWidget {
/**
* Gets the center of the map in spherical mercator. Use
* sphericalMercator.deprojectToLatLon static function to convert to a lat/lon.
* @return {point} A point map center
*/
getMapCenter(): point;
/**
* Sets the center of the map in spherical mercator. Use
* sphericalMercator.projectFromLatLon static function to convert from a lat/lon.
* @param {point} center The map center as a point
*/
setMapCenter(center: point): void;
/**
* Same as setMapCenter except will animate from current map center to the
* specified location
* @param {point} center The map center as a point.
* @param {number} [durationMs] Duration in miliseconds.
* @param {function} [completeAction] Callback to perform on animaton complete.
*/
setMapCenterAnimate(center: point, durationMs?: number, completeAction?: () => void): void;
/**
* Sets the map center to the current geolocation if supported. The map is
* animated to the new location.
* @param {number} [durationMs] Duration in miliseconds.
* @param {function} [completeAction] Callback to perform on animaton complete.
*/
setMapCenterToGeolocationAnimate(durationMs?: number, completeAction?: () => void): void;
/**
* Offsets the current map center by the specified deltas in pixels.
* @param {number} [dx] offset x in pixels.
* @param {number} [dy] offset y in pixels.
*/
offsetMapCenterByPixelDelta(dx: number, dy: number): void;
/**
* Offsets the current map center by the specified deltas in pixels - animated version.
* @param {number} [dx] offset x in pixels.
* @param {number} [dy] offset y in pixels.
* @param {number} [durationMs] animation duration in mS.
*/
offsetMapCenterByPixelDeltaAnimate(dx: number, dy: number, durationMs?: number): void;
/**
* Gets the current zoom level.
* @returns {number} The current zoom level.
*/
getZoomLevel(): number;
/**
* Sets the current zoom level.
* @param {number} z1 The desired zoom level.
*/
setZoomLevel(zl: number): void;
/**
* Sets the minimum zoom level for the map.
* @param {number} zl Desired minimum zoom level.
*/
setMinZoomLevel(zl: number): void;
/**
* Sets the maximum zoom level for the map.
* @param {number} z1 The desired maximum zoom level.
*/
setMaxZoomLevel(zl: number): void;
/**
* Animates the map from the current zoom level to the given zoom level.
* @param {number} zl The desired zoom level.
* @param {number} [durationMs] The duration in miliseconds.
* @param {function} [completeAction] Function to call when the animation
* completes with signature completeAction().
*/
setZoomLevelAnimate(zl: number, durationMs?: number, completeAction?: () => void): void;
/**
* Changes the current zoom level.
* @param {number} delta Change to be added to the current zoom level.
*/
zoomDelta(delta: number): void;
/**
* Animates a change to the current zoom level.
* @param {number} delta Change to be added to the current zoom level.
* @param {number} [durationMs] Duration in miliseconds.
*/
zoomDeltaAnimate(delta: number, durationMs?: number): void;
/**
* Animates parabolically from the current map center and zoom level
* to the given map center and zoom level.
* @param {point} center Desired map center as a point.
* @param {number} zl Desired zoom level.
* @param {number} [durationMs] Animation duration in miliseconds.
* @param {function} [completeAction] Function to call after the animation
* completes with signature completeAction().
*/
flyTo(center: point, zl: number, durationMs?: number, completeAction?: () => void): void;
/**
* Gets the current map extents in spherical mercator units.
* @return {envelope} envelope The current map extents.
*/
getMapExtents(): envelope;
/**
* Gets the current map units per pixel.
* @returns {number} Map units (meters) per pixel.
*/
getMapUnitsPerPixel(): number;
/**
* Gets the map extents' width and height in pixels.
* @returns {object} JavaScript object of the form {w, h} where w is
* the current extents' width in pixels and h is the current extents'
* height in pixels.
*/
getViewExtentsInPix(): { w: number; h: number; };
/**
* Gets the current projected map scale. This is the ratio of units on
* the screen to map units depicted.
* @returns {number} Ratio of screen units to map units.
*/
getProjectedMapScale(): number;
/**
* Gets the current actual map scale. This is the ratio of units on
* the screen to actual units on the earth's surface at the latitude
* of the current map center.
* @returns {number} The ratio of screen units to actual meters.
*/
getActualMapScale(): number;
/**
* Gets the best fit zoom level based on the supplied map extents for
* the current display extents in pixels.
* @param {envelope} extentsNew New map extents to fit.
* @returns {number} The zoom level which best fits the extents.
*/
getBestFitZoomLevelByExtents(extentsNew: envelope): number;
/**
* Forces the map to redraw the currently loaded tile and geometry
* content. You should not have to call this as redraws are automatically
* handled during programatic state changes. This would be for edge cases
* where the developer is affecting internal state in an undocumented way.
*/
redraw(): void;
/**
* Updates the map to the size of its container. This updates internal
* parameters for computing map extents and handling the amount of tile
* content to download. This is handled automatically if the browser
* window is resized. But if you are sizing the map programatically
* (e.g. resizable panel or slider) then call this after the parent
* container has resized.
*/
resize(): void;
/**
* Pushes a supplied tile layer onto the top of the display stack.
* @param {tile.layer} tl The desired tile layer.
*/
pushTileLayer(tl: tile.layer): void;
/**
* Removes a tile layer off the top of the display stack
* @returns {tile.layer} The removed tile layer.
*/
popTileLayer(): tile.layer;
/**
* Removes a tile layer off the display stack by reference
* @param {tile.layer} tl A tile layer to remove.
*/
removeTileLayer(tl: tile.layer): void;
/**
* Removes all tile layers off the display stack
*/
removeAllTileLayers(): void;
/**
* Gets the current number of tile layers in the display stack.
* @returns {number} The number of tile layers in the display stack.
*/
getTileLayerCount(): number;
/**
* Gets a tile layer from the display stack by its key.
* @param {string} key The desired tile layer's key.
* @returns {tile.layer} The tile layer associated with the key, or null
* if no tile layer is associated with the key.
*/
getTileLayer(key: string): tile.layer;
/**
* Gets a point in map units from supplied coordinates pixel units
* with respect to the currently displayed extents.
* @param {number} x The x coordinate in pixels.
* @param {number} y The y coordinate in pixels.
* @returns {point} The generated point in map units.
*/
computeMapPointFromPixelLocation(x: number, y: number): point;
/**
* Flags whether or not map extent changes can occur through gestures
* like mouse or touch drag, mouse wheel, or pinch zoom.
* @param {boolean} flag Whether or not gestures should affect map
* extent changes.
*/
setSuspendMapExtentChangesByGestures(flag: boolean): void;
/**
* Sets the z-order of drawn content in relation to the gesture capture
* panel. The default behavior (false) is to have fixed content and
* geometry underneath the gesture panel in the DOM. If false, all
* pointer events are handled by the gesture capture panel and
* optionally parents of the map control. If true, drawn content will
* receive pointer events first and will block gestures to the map. If
* true, digitizing will not function and polygons will block map
* navigation. In some scenarios you may want to set this to true if you
* are placing fixed content (such as point features) on the map and
* need to handle gestures on the placed content. You can call this
* function at any time to change the order.
* @param {boolean} flag Whether or not the fixed content layer should
* reside above the gesture layer.
*/
setDrawnContentZorderToTop(flag: boolean): void;
/**
* Add a fixed element to the content area which resides at a z-level
* above tiled map content. These elements do not scale with the map
* scale. This is used to place markers or callouts on the map
* @param {HTMLElement} element Any html that can be added to the DOM.
* @param {number} mapUnitsX The x coordinate of the insertion point in map units.
* @param {number} mapUnitsY The y coordinate of the insertion point in map units.
* @param {function} [addAction] Callback function called after the
* DOM element has been placed with signature addAction(element).
* @param {object} dragOptions JavaScript object of the form {dragEnabled,
* useElementInsteadOfNewGestureOverlay, downAction, moveAction, upAction,
* wheelAction } where dragEnabled flags whether dragging should be
* enabled on the element, and downAction, moveAction, upAction, and
* wheelAction are callback functions invoked on mousedown, mousemove,
* mouseup, and scroll events respectively.
*/
addFixedContentElement(
element: HTMLElement,
mapUnitsX: number,
mapUnitsY: number,
addAction?: (ele: HTMLElement) => void,
dragOptions?: {
dragEnabled: boolean;
useElementInsteadOfNewGestureOverlay: boolean;
downAction?: (downPoint: point) => any;
moveAction?: (movePoint: point) => void;
upAction?: (upPoint: point) => void;
wheelAction?: (delta: number) => void;
}
): void;
/**
* Move an existing fixed content element.
* @param {HTMLElement} element The existing DOM element to move.
* @param {number} mapUnitsX The new x coordinate in map units.
* @param {number} mapUnitsY The new y coordinate in map units.
*/
moveFixedContentElement(element: HTMLElement, mapUnitsX: number, mapUnitsY: number): void;
/**
* Removes a fixed content element.
* @param {HTMLElement} element The DOM element to remove. Note: This
* must be the same element added by addFixedContentElement.
*/
removeFixedContentElement(element: HTMLElement): void;
/**
* Add a styled path geometry to the content area which resides at a z-level
* above tiled map content. The geometry is converted to SVG and added to the
* content area DOM. If an attempt to add a geometry is made with the same
* key, the geometry is swapped out. You must remove using removePathGeometry
* for resource cleanup.
* @param {styleGeometry} styledGeom The styledGeometry to render.
* @param {string} key String used to tie a geometry to its SVG
* @param {function} addAction optional function that is called when mapsjs adds an svg element to the DOM representing this styledGeometry.
* @param {function} removeAction optional function that is called when mapsjs adds an svg element to the DOM representing this styledGeometry.
* rendering in the DOM.
* @returns {element} The SVG element which was added to the DOM.
*/
addPathGeometry(
styledGeom: styledGeometry,
key: string,
addAction?: (svg: SVGElement) => void,
removeAction?: (svg: SVGElement) => void): SVGElement;
/**
* Updates an existing path geometry to reflect a style change.
* @param {geometryStyle} styleNew The new geometryStyle.
* @param {string} key The key of the geometry to receive the new style.
*/
updatePathGeometryStyle(styleNew: geometryStyle, key: string): void;
/**
* Removes a styledGeometry from display.
* @param {string} key The key of the geometry to remove.
* @returns {element} The SVG element which was removed from the DOM.
*/
removePathGeometry(key?: string): SVGElement;
/**
* Initiates digitization on the map control. This creates a new
* geometry and adds verticies to the geometry accord to mouse
* click locations.
* @param {object} options JavaScript object of the form { key,
* shapeType, geometryStyle, styledGeometry, nodeTapAndHoldAction, nodeMoveAction,
* shapeChangeAction, envelopeEndAction, circleEndAction, supressNodeAdd, leavePath }
* where key is a a string associated with this geometry, shapeType
* is the type of shape this geometry is, one of 'polygon', 'polyline', 'multipoint', 'envelope' or 'circle',
* geometryStyle is a geometryStyle which should be applied
* to the digitized geometry, styledGeometry is an optional styledGeometry for existing paths to edit, set this to enter edit mode,
* nodeTapAndHoldAction is a callback invoked
* when any point in the geometry is clicked and held and has the
* signature nodeTapAndHoldAction(setIdx, idx), nodeMoveAction is a
* callback invoked after any node is dragged to a new location and
* has signature nodeMoveAction(x, y, actionType), shapeChangeAction
* is a callback that is invoked after the geometry shape changes and,
* has signature shapeChangeAction(shape), envelopeEndAction is a callback
* invoked after an envelope is created and has signature envelopeEndAction(envelope),
* circleEndAction is similar to envelopeEndAction but takes a geometry.polygon representing the circle,
* and leavePath is a flag that indicates whether the digitized shape
* should be left on the map after digitization is complete.
*/
beginDigitize(options: beginDigitizeOptions): void;
endDigitize(): void;
/**
* Gets a snapshot copy of the currently digitizing path.
* @returns {geometry} The currently digitizing path.
*/
getDigitizeSnapshot(): geometry;
/**
* Forces additional digitized points to be pushed to a new set of the
* currently digitizing geometry.
*/
pushSetOnDigitizePath(): void;
/**
* Removes the last set from the currently digitizing path.
* @return {number[]} The last set from the currently digitizing path
* in the form [xn,yn].
*/
popSetFromDigitizePath(): number[];
/**
* Programmatically delete a node from the currently digitizing path.
* @param {number} setIdx The index of the set from which to remove the node.
* @param {number} nodeIdx The index of the node to remove.
*/
deleteNodeOnDigitizePath(setIdx: number, nodeIdx: number): void;
/**
* Determines whether a shape is currently being digitized.
* @returns {boolean} Whether or not a shape is being digitized.
*/
isDigitizingEnabled(): boolean;
/**
* Set the function called when the map extents have stopped changing
* (e.g. after an animated pan or zoom).
* @param {function} action The function to call when the extents
* finish changing with signature action(object) where object is of
* the form { centerX, centerY, centerLat, centerLon, zoomLevel, mapScale,
* mapScaleProjected, mapUnitsPerPixel, extents }.
*/
setExtentChangeCompleteAction(action: (vals: extentChangeStatsObj) => void): void;
/**
* Set the function called when map content (map tiles and fixed elements) are
* re-positioned in the DOM. This is done automatically as the map is panned
* beyond existing content and zoomed to a new level requiring content.
* @param {function} action The function to call when the map content
* completes repositioning with signature action(object) where object
* is of the form { centerX, centerY, zoomLevel, mapUnitsPerPixel }.
*/
setContentRepositionAction(action: (vals: repositionStatsObj) => void): void;
/**
* Sets function called when map is clicked or tapped.
* @param {function} action The function to call on mouse click or tap
* with signature action(point).
*/
setPointerClickAction(action: (pt: point) => void): void;
/**
* Sets function called when the map pointer hovers over the map.
* @param {function} action The function to call on mouse hover with
* signature action(point).
*/
setPointerHoverAction(action: (pt: point) => void): void;
/**
* Sets the margin around the map in pixels for extra content fetched so that tile
* rebuilding of the display is minimized. This is an advanced property and does not
* generally need to be adjusted. The default is 128 pixels, or half the width
* of a tile. This should be increased for maps which are very large in pixels
* or where panning is constant. This should be decreased for very small maps,
* such as on mobile devices, or where panning is minimal.
* @param {number} cem The content extent margin in pixels.
*/
setContentExtentsMarginInPixels(cem: number): void;
/**
* Sets the background color of the map using a css color string
* @param {number} b- a css color string
*/
setBackground(b: string): void;
}
interface JQuery {
rimMap(): JQuery;
rimMap(command: any, param?: any, param2?: any, param3?: any, param4?: any, param5?: any): JQuery;
getMapsjs(): any;
}