UNPKG

@syncfusion/ej2-maps

Version:

The Maps component is used to visualize the geographical data and represent the statistical data of a particular geographical area on earth with user interactivity, and provides various customizing options

2,107 lines (1,756 loc) 48.7 kB
import { Property, ChildProperty, Complex, Collection } from '@syncfusion/ej2-base';import { DataManager, Query } from '@syncfusion/ej2-data';import { Alignment, LegendPosition, LegendType, LegendMode, Type, MarkerType, Orientation, MapAjax } from '../../index';import { SmartLabelMode, IntersectAction } from '../../index';import { Theme } from './theme';import { Point, GeoLocation, Coordinate, RelativePoint } from '../utils/helper';import { LegendArrangement, LegendShape, BubbleType, ToolbarItem } from '../utils/enum';import { AnnotationAlignment, GeometryType, LabelPosition, LabelIntersectAction } from '../index'; /** * Interface for a class Annotation */ export interface AnnotationModel { /** * Gets or sets the content for the annotation in maps. * * @default '' * @aspType string */ content?: string | Function; /** * Gets or sets the x position of the annotation in pixel or percentage format. * * @default '0px' */ x?: string; /** * Gets or sets the y position of the annotation in pixel or percentage format. * * @default '0px' */ y?: string; /** * Gets or sets the type of the placement when the annotation is to be aligned vertically. * * @default None */ verticalAlignment?: AnnotationAlignment; /** * Gets or sets the type of the placement when the annotation is to be aligned horizontally. * * @default None */ horizontalAlignment?: AnnotationAlignment; /** * Gets or sets the z-index of the annotation in maps. * * @default '-1' */ zIndex?: string; } /** * Interface for a class Arrow */ export interface ArrowModel { /** * Gets or sets the type of the position to place the arrow in navigation lines. * * @default 'Start' */ position?: string; /** * Enables or disables the visibility of the arrow in navigation line. * * @default false */ showArrow?: boolean; /** * Gets or sets the size of the arrow in navigation line in maps. * * @default 2 */ size?: number; /** * Gets or sets the color for the arrow in navigation line. * * @default 'black' */ color?: string; /** * Gets or sets the offset value to position the arrow from the navigation line. * * @default 0 */ offSet?: number; } /** * Interface for a class Font */ export interface FontModel { /** * Gets or sets the size for the text in data label, legend and other texts. */ size?: string; /** * Gets or sets the color for the text in data label, legend and other texts in maps. */ color?: string; /** * Gets or sets the font family of the text in data label, legend and other texts in maps. */ fontFamily?: string; /** * Gets or sets the font weight of the text in data label, legend and other texts in maps. */ fontWeight?: string; /** * Gets or sets the style of the text in data label, legend and other texts in maps. */ fontStyle?: string; /** * Gets or sets the opacity for the text in data label, legend and other texts in maps. * * @default 1 */ opacity?: number; } /** * Interface for a class ZoomToolbarButtonSettings */ export interface ZoomToolbarButtonSettingsModel { /** * Gets or sets the fill color of the button. * * @default 'transparent' */ fill?: string; /** * Gets or sets the color of the icons inside the button. * * @default null */ color?: string; /** * Gets or sets the opacity of the border of the button in the zoom toolbar. * * @default 1 */ borderOpacity?: number; /** * Gets or sets the width of the border of the button in the zoom toolbar. * * @default 1 */ borderWidth?: number; /** * Gets or sets the color of the border of the button in the zoom toolbar. * * @default null */ borderColor?: string; /** * Gets or sets the radius of the button. This property is used to modify the size of the button. * * @default null */ radius?: number; /** * Gets or sets the color of the icons inside the button when selection is performed. * * @default null */ selectionColor?: string; /** * Gets or sets the color for the button when the mouse has hovered on the same. * * @default null */ highlightColor?: string; /** * Gets or sets the padding space between each button. * * @default 5 */ padding?: number; /** * Gets or sets the opacity of the button. * * @default 1 */ opacity?: number; /** * Gets or sets the items that should be displayed in the Maps zoom toolbar. By default, zoom-in, zoom-out, and reset buttons are visible. Other options include selection zoom and panning. * * @default ZoomIn */ toolbarItems?: ToolbarItem[]; } /** * Interface for a class ZoomToolbarTooltipSettings */ export interface ZoomToolbarTooltipSettingsModel { /** * Enables or disables the tooltip of the zoom toolbar. * * @default true */ visible?: boolean; /** * Gets or sets the background color of the tooltip of the zoom toolbar. * * @default 'white' */ fill?: string; /** * Gets or sets the opacity of the border of the tooltip of the zoom toolbar. * * @default 1 */ borderOpacity?: number; /** * Gets or sets the width of the border of the tooltip of the zoom toolbar. * * @default 1 */ borderWidth?: number; /** * Gets or sets the color of the border of the tooltip of the zoom toolbar. * * @default '#707070' */ borderColor?: string; /** * Gets or sets the color of the text in the tooltip of the zoom toolbar. * * @default 'black' */ fontColor?: string; /** * Gets or sets the font family of the text in the tooltip of the zoom toolbar. * * @default '' */ fontFamily?: string; /** * Gets or sets the font style of the text in the tooltip of the zoom toolbar. * * @default '' */ fontStyle?: string; /** * Gets or sets the font weight of the text in the tooltip of the zoom toolbar. * * @default '' */ fontWeight?: string; /** * Gets or sets the size of the text in the tooltip of the zoom toolbar. * * @default '' */ fontSize?: string; /** * Gets or sets the font opacity of the text in the tooltip of the zoom toolbar. * * @default 1 */ fontOpacity?: number; } /** * Interface for a class ZoomToolbarSettings */ export interface ZoomToolbarSettingsModel { /** * Gets or sets the background color of the zoom toolbar. * * @default 'transparent' */ backgroundColor?: string; /** * Gets or sets the opacity of the border of the zoom toolbar. * * @default 1 */ borderOpacity?: number; /** * Gets or sets the thickness of the border of the zoom toolbar. * * @default 1 */ borderWidth?: number; /** * Gets or sets the color of the border of the zoom toolbar. * * @default 'transparent' */ borderColor?: string; /** * Gets or sets the placement of the zoom toolbar when it is placed horizontally. * * @default Far */ horizontalAlignment?: Alignment; /** * Gets or sets the placement of the zoom toolbar when it is placed vertically. * * @default Near */ verticalAlignment?: Alignment; /** * Gets or sets the orientation of the zoom toolbar. * * @default Horizontal */ orientation?: Orientation; /** * Specifies the options to customize the buttons in the zoom toolbar. * */ buttonSettings?: ZoomToolbarButtonSettingsModel; /** * Specifies the options to customize the tooltip in the zoom toolbar. * */ tooltipSettings?: ZoomToolbarTooltipSettingsModel; } /** * Interface for a class Border */ export interface BorderModel { /** * Gets or sets the color of the border. This property accepts the value in hex code and rgba string as a valid CSS color string. */ color?: string; /** * Gets or sets the width of the border of the maps. */ width?: number; /** * Gets or sets the opacity of the border of the maps. */ opacity?: number; } /** * Interface for a class CenterPosition */ export interface CenterPositionModel { /** * Gets or sets the latitude of the center position of maps. * * @default null */ latitude?: number; /** * Gets or sets the longitude of the center position of maps. * * @default null */ longitude?: number; } /** * Interface for a class TooltipSettings */ export interface TooltipSettingsModel { /** * Enables or disables the tooltip visibility of layers, markers, and bubbles in maps. * * @default false */ visible?: boolean; /** * Gets or sets the tooltip template of layers, markers, and bubbles in maps to display custom elements as tooltip. * * @default '' * @aspType string */ template?: string | Function; /** * Gets or sets the color of the tooltip in layers, markers, and bubbles of maps. * * @default '' */ fill?: string; /** * Gets or sets the options for customizing the style properties of the border of the tooltip in layers, markers, and bubbles of maps. */ border?: BorderModel; /** * Gets or sets the options for customizing the style of the text in tooltip for layers, markers, and bubbles of maps. */ textStyle?: FontModel; /** * Gets or sets the format of the tooltip in layers, markers, and bubbles of maps. * * @default null */ format?: string; /** * Gets or sets the field name from the data source based on which the tooltip is visible on layers, markers, and bubbles of maps. * For the layer tooltip, the field name from the GeoJSON data can also be set. * * @default null */ valuePath?: string; /** * Specifies the value within which the tooltip will be removed on a mobile device. The value represents time in milliseconds. * If the value is set to 0, the tooltip will not be removed. If the value is set to greater than 0, the tooltip will be removed at the specified time. * * @default 2000 */ duration?: number; } /** * Interface for a class PolygonTooltipSettings */ export interface PolygonTooltipSettingsModel { /** * Shows or hides the tooltip of the polygon shapes. When this property is set as false, the tooltip for all the polygon shapes in a layer will not be visible. * * @default false */ visible?: boolean; /** * Gets or sets the fill color for the tooltip of the polygon shape. * * @default '' */ fill?: string; /** * Gets or sets the attributes such as width, color and opacity of the border of the tooltip element of the polygon shape. */ border?: BorderModel; /** * Gets or sets the font properties of the text content of the tooltip element of the polygon shape. */ textStyle?: FontModel; /** * Specifies the value within which the tooltip will be removed on a mobile device. The value represents time in milliseconds. * If the value is set to 0, the tooltip will not be removed. If the value is set to greater than 0, the tooltip will be removed at the specified time. * * @default 2000 */ duration?: number; } /** * Interface for a class Margin */ export interface MarginModel { /** * Gets or sets the left margin of maps. * * @default 10 */ left?: number; /** * Gets or sets the right margin of maps. * * @default 10 */ right?: number; /** * Gets or sets the top margin of maps. * * @default 10 */ top?: number; /** * Gets or sets the bottom margin of maps. * * @default 10 */ bottom?: number; } /** * Interface for a class ConnectorLineSettings */ export interface ConnectorLineSettingsModel { /** * Gets or sets the color for connector line between the markers in marker cluster. * * @default '#000000' */ color?: string; /** * Gets or sets the line width for connector line between the markers in marker cluster. * * @default 1 */ width?: number; /** * Gets or sets the opacity for connector line between the markers in marker cluster. * * @default 1 */ opacity?: number; } /** * Interface for a class MarkerClusterSettings */ export interface MarkerClusterSettingsModel { /** * Enables or disables the visibility of the cluster of markers in the maps. * * @default false */ allowClustering?: boolean; /** * Enables or disables intense marker clustering for improved accuracy. * The default value is true, and clustering logic will be executed twice for improved accuracy. * If set to false, the clustering logic will only be executed once, increasing performance while maintaining decent accuracy. * * @default true */ allowDeepClustering?: boolean; /** * Gets or sets the options for customizing the style properties of the border of the clusters in maps. */ border?: BorderModel; /** * Gets or sets the fill color of the cluster. * * @default '#D2691E' */ fill?: string; /** * Gets or sets the opacity of the marker cluster. * * @default 1 */ opacity?: number; /** * Gets or sets shape of the marker cluster. * * @default Rectangle */ shape?: MarkerType; /** * Gets or sets the width of the marker cluster in maps. * * @default 12 */ width?: number; /** * Gets or sets the height of the marker cluster in maps. * * @default 12 */ height?: number; /** * Gets or sets the offset value to position the marker cluster from the intended position in maps. */ offset?: Point; /** * Gets or sets the URL path for the marker cluster when the cluster shape is set as image in maps. * * @default '' */ imageUrl?: string; /** * Gets or sets the dash array for the marker cluster in maps. * * @default '' */ dashArray?: string; /** * Gets or sets the options to customize the label text in marker cluster. */ labelStyle?: FontModel; /** * Enables or disables the expanding of the clusters when many markers are in same location. * * @default false */ allowClusterExpand?: boolean; /** * Gets or sets the options to customize the connector line which is visible on cluster expand. */ connectorLineSettings?: ConnectorLineSettingsModel; } /** * Interface for a class MarkerClusterData */ export interface MarkerClusterDataModel { } /** * Interface for a class ColorMappingSettings */ export interface ColorMappingSettingsModel { /** * Gets or sets the value from where the range for the color-mapping starts. * * @aspDefaultValueIgnore * @default null */ from?: number; /** * Gets or sets the value to where the range for the color-mapping ends. * * @aspDefaultValueIgnore * @default null */ to?: number; /** * Gets or sets the value from the data source to map the corresponding colors to the shapes. * * @default null */ value?: string; /** * Gets or sets the color for the color-mapping in maps. * * @default null */ color?: string | string[]; /** * Gets or sets the minimum opacity for the color-mapping in maps. * * @default null */ minOpacity?: number; /** * Gets or sets the maximum opacity for the color-mapping in maps. * * @default null */ maxOpacity?: number; /** * Gets or sets the label for the color-mapping to display in the legend item text. * * @default null */ label?: string; /** * Enables or disables the visibility of legend for the corresponding color-mapped shapes in maps. * * @default true */ showLegend?: boolean; } /** * Interface for a class InitialMarkerSelectionSettings */ export interface InitialMarkerSelectionSettingsModel { /** * Specifies the latitude of the marker to be selected. * * @default null */ latitude?: number; /** * Specifies the longitude of the marker to be selected. * * @default null */ longitude?: number; } /** * Interface for a class InitialShapeSelectionSettings */ export interface InitialShapeSelectionSettingsModel { /** * Gets or sets the property name from the data source in maps. * * @default null */ shapePath?: string; /** * Gets or sets the value from the data source which is bound to the shape in maps. * * @default null */ shapeValue?: string; } /** * Interface for a class SelectionSettings */ export interface SelectionSettingsModel { /** * Enables or disables the selection for the layers, markers and bubbles in maps. * * @default false */ enable?: boolean; /** * Gets or sets the color for the shape that is selected. * * @default null */ fill?: string; /** * Gets or sets the opacity for the shape that is selected. * * @default 1 */ opacity?: number; /** * Enables or disables the selection of multiple shapes in maps. * * @default false */ enableMultiSelect?: boolean; /** * Gets or sets the options for customizing the color and width of the border of selected shapes in maps. */ border?: BorderModel; } /** * Interface for a class HighlightSettings */ export interface HighlightSettingsModel { /** * Gets or sets the color for the shapes on which the mouse has hovered in maps. * * @default null */ fill?: string; /** * Enables or disables the highlight functionality of the layers in maps. * * @default false */ enable?: boolean; /** * Gets or sets the opacity for the highlighted shapes in maps. * * @default 1 */ opacity?: number; /** * Gets or sets the options for customizing the style properties of the border of the highlighted shapes in maps. */ border?: BorderModel; } /** * Interface for a class PolygonSetting */ export interface PolygonSettingModel { /** * Gets or sets the width of the border of the polygon shape. * * @default 1 */ borderWidth?: number; /** * Gets or sets the opacity of the border of the polygon shape. * * @default 1 */ borderOpacity?: number; /** * Gets or sets the opacity of the polygon shape. * * @default 1 */ opacity?: number; /** * Gets or sets the color to be used in the border of the polygon shape. * * @default 'black' */ borderColor?: string; /** * Gets or sets the color to be filled in the polygon shape. * * @default 'black' */ fill?: string; /** * Gets or sets the points that define the polygon shape. * This property holds a collection of coordinates that define the polygon shape. * * @default [] */ points?: Coordinate[]; /** * Specifies the tooltip text to be displayed for the polygon shape. If it is not set, the tooltip will not be displayed. * * @default '' */ tooltipText?: string; /** * Specifies any HTML content as a tooltip on the polygon shape. If it is not set, the tooltip will not be displayed. * * @default '' * @aspType string */ tooltipTemplate?: string | Function; } /** * Interface for a class PolygonSettings */ export interface PolygonSettingsModel { /** * Gets or sets the properties of all the polygon shapes that will be displayed in a layer. * {% codeBlock src='maps/polygonSettingsPolygons/index.md' %}{% endcodeBlock %} */ polygons?: PolygonSettingModel[]; /** * Gets or sets the properties for selecting polygon shapes in a map layer. * {% codeBlock src='maps/polygonSettingsSelectionSettings/index.md' %}{% endcodeBlock %} */ selectionSettings?: SelectionSettingsModel; /** * Gets or sets the properties for highlighting polygon shapes in a map layer. * {% codeBlock src='maps/polygonSettingsHighlightSettings/index.md' %}{% endcodeBlock %} */ highlightSettings?: HighlightSettingsModel; /** * Specifies the properties such as visibility, fill, border and text style to customize the tooltip. * {% codeBlock src='maps/polygonSettingsTooltipSettings/index.md' %}{% endcodeBlock %} */ tooltipSettings?: PolygonTooltipSettingsModel; } /** * Interface for a class NavigationLineSettings */ export interface NavigationLineSettingsModel { /** * Enables or disables the navigation lines to be drawn in maps. * * @default false */ visible?: boolean; /** * Gets or sets the width of the navigation lines in maps. * * @default 1 */ width?: number; /** * Gets or sets the longitude for the navigation lines to be drawn in maps. * * @default [] */ longitude?: number[]; /** * Gets or sets the latitude value for the navigation lines to be drawn in maps. * * @default [] */ latitude?: number[]; /** * Gets or sets the dash-array for the navigation lines drawn in maps. * * @default '' */ dashArray?: string; /** * Gets or sets the color for the navigation lines in maps. * * @default 'black' */ color?: string; /** * Gets or sets the angle of the curve connecting different locations in maps. * * @default 0 */ angle?: number; /** * Gets or sets the options to customize the arrow for the navigation line in maps. */ arrowSettings?: ArrowModel; /** * Gets or sets the selection settings of the navigation line in maps. */ selectionSettings?: SelectionSettingsModel; /** * Gets or sets the highlight settings of the navigation line in maps. */ highlightSettings?: HighlightSettingsModel; } /** * Interface for a class BubbleSettings */ export interface BubbleSettingsModel { /** * Gets or sets the options to customize the style properties of the border for the bubbles in maps. */ border?: BorderModel; /** * Enables or disables the visibility of the bubbles in maps. * * @default false */ visible?: boolean; /** * Gets or sets the data source for the bubble. * The data source must contain the size value of the bubble that can be bound to the bubble * of the maps using the `valuePath` property in the `bubbleSettings`. * The data source can contain data such as color and other informations that can be bound to the bubble and tooltip of the bubble. * * @isObservable true * @default [] */ dataSource?: Object[] | DataManager; /** * Gets or sets the query to select particular data from the bubble data source. * This property is applicable only when the data source is created by data manager. * * @default null */ query?: Query; /** * Gets or sets the duration for the animation of the bubbles in maps. * * @default 1000 */ animationDuration?: number; /** * Gets or sets the delay in animation for the bubbles in maps. * * @default 0 */ animationDelay?: number; /** * Gets or sets the color for the bubbles in maps. * * @default '' */ fill?: string; /** * Gets or sets the minimum radius for the bubbles in maps. * * @default 10 */ minRadius?: number; /** * Gets or sets the maximum radius for the bubbles in maps. * * @default 20 */ maxRadius?: number; /** * Gets or sets the opacity of the bubbles in maps. * * @default 1 */ opacity?: number; /** * Gets or sets the field name from the data source of bubble settings based on which the bubbles are rendered on the maps. * * @default null */ valuePath?: string; /** * Gets or sets the type of the bubble in maps. * * @default Circle */ bubbleType?: BubbleType; /** * Gets or sets the field name from the data source of bubble settings to set the color for each bubble in maps. * * @default null */ colorValuePath?: string; /** * Gets or sets the color-mapping for the bubbles in maps. * * @default [] */ colorMapping?: ColorMappingSettingsModel[]; /** * Gets or sets the options to customize the tooltip of the bubbles in maps. */ tooltipSettings?: TooltipSettingsModel; /** * Gets or sets the options to customize the selection of the bubbles in maps. */ selectionSettings?: SelectionSettingsModel; /** * Gets or sets the options to customize the highlight of the bubbles in maps. */ highlightSettings?: HighlightSettingsModel; } /** * Interface for a class CommonTitleSettings */ export interface CommonTitleSettingsModel { /** * Gets or sets the text for the title in maps. * * @default '' */ text?: string; /** * Gets or sets the description of the title in maps for assistive technology. * * @default '' */ description?: string; } /** * Interface for a class SubTitleSettings */ export interface SubTitleSettingsModel extends CommonTitleSettingsModel{ /** * Gets or sets the options for customizing the text in the subtitle of the maps. */ textStyle?: FontModel; /** * Gets or sets the alignment of the subtitle of the maps. * * @default Center */ alignment?: Alignment; } /** * Interface for a class TitleSettings */ export interface TitleSettingsModel extends CommonTitleSettingsModel{ /** * Gets or sets the options for customizing the text of the title in maps. */ textStyle?: FontModel; /** * Gets or sets the alignment of the title of the maps. * * @default Center */ alignment?: Alignment; /** * Gets or sets the options to customize the subtitle of the maps. */ subtitleSettings?: SubTitleSettingsModel; } /** * Interface for a class ZoomSettings */ export interface ZoomSettingsModel { /** * Enables or disables the zooming operation in the maps. * * @default false */ enable?: boolean; /** * Enables or disables the panning operation in the maps. * * @default true */ enablePanning?: boolean; /** * Enables or disables the selection zooming operation in the maps. * * @default true */ enableSelectionZooming?: boolean; /** * Enables or disables the mouse wheel zooming in maps. * * @default true */ mouseWheelZoom?: boolean; /** * Enables or disables the double click zooming in maps. * * @default false */ doubleClickZoom?: boolean; /** * Enables or disables the pinch zooming in maps. * * @default true */ pinchZooming?: boolean; /** * Enables or disables the zooming on clicking the shapes in maps. * * @default false */ zoomOnClick?: boolean; /** * Gets or sets the factor of zoom to be displayed while rendering the maps. * * @default 1 */ zoomFactor?: number; /** * Gets or sets the maximum zooming value in maps. * * @default 10 */ maxZoom?: number; /** * Gets or sets the minimum zooming value in maps. * * @default 1 */ minZoom?: number; /** * Enables or disables the ability to zoom based on the marker position while rendering the maps. * * @default false */ shouldZoomInitially?: boolean; /** * Enables or disables the zoom to set to the initial State. * * @default true */ resetToInitial?: boolean; /** * Gets or sets the detailed options to customize the entire zoom toolbar. */ toolbarSettings?: ZoomToolbarSettingsModel; } /** * Interface for a class ToggleLegendSettings */ export interface ToggleLegendSettingsModel { /** * Enables or disables the legend to be toggled. * * @default false */ enable?: boolean; /** * Specifies whether the property of the shape settings is to be set while toggling the legend item. * * @default true */ applyShapeSettings?: boolean; /** * Gets or sets the opacity for the shape of the legend item which is toggled. * * @default 1 */ opacity?: number; /** * Gets or sets the color of the shape of the legend item which is toggled. * * @default '' */ fill?: string; /** * Gets or sets the options to customize the style properties of the border for the shape in maps. */ border?: BorderModel; } /** * Interface for a class LegendSettings */ export interface LegendSettingsModel { /** * Enables or disables to render the legend item based on the shapes from the data source of markers. * * @default false */ useMarkerShape?: boolean; /** * Enables or disables the toggle visibility of the legend in maps. * * @default false */ toggleVisibility?: boolean; /** * Enables or disables the visibility of the legend in maps. * * @default false */ visible?: boolean; /** * Gets or sets the background color for the legend in maps. * * @default 'transparent' */ background?: string; /** * Gets or sets the type of the legend in maps. * * @default Layers */ type?: LegendType; /** * Enables or disables the visibility of the inverted pointer in interactive legend in maps. * * @default false */ invertedPointer?: boolean; /** * Gets or sets the position of the label in legend. * * @default After */ labelPosition?: LabelPosition; /** * Gets or sets the action to perform when the legend item text intersects with others. * * @default None */ labelDisplayMode?: LabelIntersectAction; /** * Gets or sets the shape of the legend in maps. * * @default Circle */ shape?: LegendShape; /** * Gets or sets the width of the legend in maps. * * @default '' */ width?: string; /** * Gets or sets the height of the legend in maps. * * @default '' */ height?: string; /** * Gets or sets the options for customizing the text styles of the legend item text in maps. */ textStyle?: FontModel; /** * Gets or sets the width of the shapes in legend. * * @default 15 */ shapeWidth?: number; /** * Gets or sets the height of the shapes in legend. * * @default 15 */ shapeHeight?: number; /** * Gets or sets the padding for the shapes in legend. * * @default 10 */ shapePadding?: number; /** * Gets or sets the options for customizing the style properties of the legend border. */ border?: BorderModel; /** * Gets or sets the options for customizing the style properties of the border of the shapes of the legend items. */ shapeBorder?: BorderModel; /** * Gets or sets the title for the legend in maps. */ title?: CommonTitleSettingsModel; /** * Gets or sets the options for customizing the style of the title of the legend in maps. */ titleStyle?: FontModel; /** * Gets or sets the position of the legend in maps. * * @default Bottom */ position?: LegendPosition; /** * Gets or sets the alignment of the legend in maps. * * @default Center */ alignment?: Alignment; /** * Gets or sets the orientation of the legend in maps. * * @default None */ orientation?: LegendArrangement; /** * Gets or sets the location of the legend in pixels when the legend position is set as `Float`. */ location?: RelativePoint | Point; /** * Gets or sets the color of the legend in maps. * * @default null */ fill?: string; /** * Gets or sets the opacity for the legend in maps. * * @default 1 */ opacity?: number; /** * Gets or sets the mode of the legend in maps. The modes available are default and interactive modes. * * @default Default */ mode?: LegendMode; /** * Gets or sets the field name from the data source which is used to provide visibility state for each legend item. * * @default null */ showLegendPath?: string; /** * Set and gets the field name from the data source to display the legend item text. * * @default null */ valuePath?: string; /** * Enables or disables the ability to remove the duplicate legend item. * * @default false */ removeDuplicateLegend?: boolean; /** * Gets or sets the options for customizing the color and border width of the shape related to the legend when selecting the legend. */ toggleLegendSettings?: ToggleLegendSettingsModel; } /** * Interface for a class DataLabelSettings */ export interface DataLabelSettingsModel { /** * Enables or disables the visibility of data labels in maps. * * @default false */ visible?: boolean; /** * Gets or sets the options for customizing the style properties of the border of the data labels. */ border?: BorderModel; /** * Gets or sets the background color for the data labels in maps. * * @default 'black' */ fill?: string; /** * Gets or sets the opacity of the data labels in maps. * * @default 1 */ opacity?: number; /** * Gets or sets the x position for the data labels. * * @default 10 */ rx?: number; /** * Gets or sets the y position for the data labels in maps. * * @default 10 */ ry?: number; /** * Gets or sets the options for customizing the styles of the text in data labels. */ textStyle?: FontModel; /** * Gets or sets the field name from the data source based on which the data labels gets rendered. * The field name from the GeoJSON data can also be set. * * @default '' */ labelPath?: string; /** * Gets or sets the action to be performed when the data labels exceeds the shape over which it is rendered. * * @default None */ smartLabelMode?: SmartLabelMode; /** * Gets or sets the action to be performed when a data-label intersect with other data labels in maps. * * @default None */ intersectionAction?: IntersectAction; /** * Gets or sets the template for the data labels to render custom elements. * * @default '' * @aspType string */ template?: string | Function; /** * Gets and sets the duration time for animating the data label. * * @default 0 */ animationDuration?: number; } /** * Interface for a class ShapeSettings */ export interface ShapeSettingsModel { /** * Gets or sets the color of the shapes in maps. * * @default null */ fill?: string; /** * Gets or sets a set of colors for the shapes in maps. * * @default [] */ palette?: string[]; /** * Gets or sets the radius of the "Point" and "MultiPoint" geometry shapes. * This property will be applicable only when the GeoJSON data has "Point" and "MultiPoint" geometry types. */ circleRadius?: number; /** * Gets or sets the options for customizing the style properties of the border for the shapes in maps. */ border?: BorderModel; /** * Gets or sets the dash-array for the shapes in maps. */ dashArray?: string; /** * Gets or sets the opacity for the shapes in maps. * * @default 1 */ opacity?: number; /** * Gets or sets the field name from the data source to set the color for the shapes in maps. * * @default null */ colorValuePath?: string; /** * Gets or sets the field name from the data source to set the color for the border of a particular shape in maps. * * @default null */ borderColorValuePath?: string; /** * Gets or sets the field name from the data source to set the width for the border of a particular shape in maps. * * @default null */ borderWidthValuePath?: string; /** * Gets or sets the value from the data source based on which the shape gets rendered. * * @default null */ valuePath?: string; /** * Gets or sets the options to map the color for some set of the shapes in maps. * * @default [] */ colorMapping?: ColorMappingSettingsModel[]; /** * Enables or disables the filling of color, based on the palette, for the shapes automatically. * * @default false */ autofill?: boolean; } /** * Interface for a class MarkerBase */ export interface MarkerBaseModel { /** * Gets or sets the options for customizing the style properties of the border of the marker in maps. */ border?: BorderModel; /** * Gets or sets the dash-array for the marker. */ dashArray?: string; /** * Enables or disables the visibility of the markers in maps. * * @default false */ visible?: boolean; /** * Enables or disables marker drag and drop functionality at any location on the map. * * @default false */ enableDrag?: boolean; /** * Gets or sets the color for the marker in maps. * * @default '#FF471A' */ fill?: string; /** * Gets or sets the field name from the data source that determines the marker height. * * @default null */ heightValuePath?: string; /** * Gets or sets the field name from the data source that determines the marker width. * * @default null */ widthValuePath?: string; /** * Gets or sets the height of the marker in maps. * * @default 10 */ height?: number; /** * Gets or sets the width of the marker in maps. * * @default 10 */ width?: number; /** * Gets or sets the opacity for the marker in maps. * * @default 1 */ opacity?: number; /** * Gets or sets the field name from the marker data source based on which the color is applied for the marker. * * @default null */ colorValuePath?: string; /** * Gets or sets the field name from the marker data source based on which the shape for individual markers are set. * * @default null */ shapeValuePath?: string; /** * Gets or sets the field name from the marker data source based on which the image source for the image type marker is got individually. * * @default null */ imageUrlValuePath?: string; /** * Gets or sets the shape of the marker in maps. * * @default Balloon */ shape?: MarkerType; /** * Gets or sets the field name from the marker data source to render legend item text for the marker legend. * * @default '' */ legendText?: string; /** * Gets or sets the offset value from which the marker must be rendered from the intended position. * */ offset?: Point; /** * Gets or sets the URL for rendering the marker as image. This property acts as image source for all the markers in a marker settings. */ imageUrl?: string; /** * Gets or sets the template for the marker to render custom elements. * * @default null * @aspType string */ template?: string | Function; /** * Gets or sets the data source for the marker. * The data source for the marker will contain latitude and longitude values to specify the location * of the marker. * The data source can contain data such as color, shape, and other details that can be bound to the color, shape, * and tooltip of the marker. * * @isObservable true * @default [] */ dataSource?: Object[] | DataManager; /** * Gets or sets the query to select particular data from the marker data source. * This property is applicable only when the data source is created by data manager. * * @default null */ query?: Query; /** * Gets or sets the options to customize the tooltip of the marker in maps. */ tooltipSettings?: TooltipSettingsModel; /** * Gets or sets the duration time for animating the marker. * * @default 1000 */ animationDuration?: number; /** * Gets or sets the delay time for the animation in marker. * * @default 0 */ animationDelay?: number; /** * Gets or sets the options to customize the marker while selecting the marker in maps. */ selectionSettings?: SelectionSettingsModel; /** * Gets or sets the options to customize the marker when the mouse hovers over the markers in maps. */ highlightSettings?: HighlightSettingsModel; /** * Defines the field name from the marker data source for setting latitude for a set of markers. */ latitudeValuePath?: string; /** * Defines the field name from the marker data source for setting longitude for a set of markers. */ longitudeValuePath?: string; /** * Gets or sets the options to select the markers at the initial rendering time of the maps. * The initial selection of markers will be performed only when the selection functionality of marker is enabled. */ initialMarkerSelection?: InitialMarkerSelectionSettingsModel[]; /** * Gets or sets the options for customizing the clustering of markers on the map. * This property is used to cluster markers based on the current marker settings, and it is applied only when the `allowClustering` property is enabled. */ clusterSettings?: MarkerClusterSettingsModel; } /** * Interface for a class MarkerSettings */ export interface MarkerSettingsModel extends MarkerBaseModel{ } /** * Interface for a class LayerSettings */ export interface LayerSettingsModel { /** * Gets or sets the data for the maps to render. * The data is normally JSON object with GeoJSON format that defines the shapes and geometries of the map. * * @isObservable true * @default null */ shapeData?: Object | DataManager | MapAjax; /** * Gets or sets the query to select particular data from the layer data source. * This property is applicable only when the data source is created by data manager. * * @default null */ query?: Query; /** * Gets or sets the options to customize the shape of the maps. */ shapeSettings?: ShapeSettingsModel; /** * Gets or sets the data source for the layer. * The data bound to the shapes using data source can be used to display the tooltip, marker, and bubble. * * @isObservable true * @default [] */ dataSource?: Object[] | DataManager | MapAjax; /** * Gets or sets the type of the layer in maps. There are two types: Layer and SubLayer. * * @default Layer */ type?: Type; /** * Gets or sets the geometry type for the layer in maps. There are two types: Geographic and Normal. * - Geographic type renders the shape maps with geographical coordinate system. * - Normal type renders the shape maps using default coordinate system. * * @default Geographic */ geometryType?: GeometryType; /** * Gets or sets the URL of the online map providers. * The online map providers will be rendered only when the shape data is not set and layer type is set with default value. * * @default '' */ urlTemplate?: string; /** * Enables or disables the visibility of the layers in maps. * * @default true */ visible?: boolean; /** * Gets or sets the field name from the GeoJSON data to map the shape to the data defined in the layer data source. * * @default 'name' */ shapeDataPath?: string; /** * Gets or sets the field name from the data source to map the shape to the data defined in the layer data source. * * @default 'name' */ shapePropertyPath?: string | string[]; /** * Gets or sets the duration of the animation of layers when the zooming is performed in maps. * * @default 0 */ animationDuration?: number; /** * Gets or sets the options for customizing the markers in maps. */ markerSettings?: MarkerSettingsModel[]; /** * Gets or sets the options for customizing the cluster of markers in maps. */ markerClusterSettings?: MarkerClusterSettingsModel; /** * Gets or sets the options for customizing the data labels in maps. */ dataLabelSettings?: DataLabelSettingsModel; /** * Gets or sets the options for customizing the bubbles in maps. */ bubbleSettings?: BubbleSettingsModel[]; /** * Gets or sets the options for customizing the navigation lines in maps. */ navigationLineSettings?: NavigationLineSettingsModel[]; /** * Gets or sets the properties of the polygon shapes that will be rendered on a map layer. * The selection and highlight settings for polygon shapes can also be defined. */ polygonSettings?: PolygonSettingsModel; /** * Gets or sets the options for customizing the tooltip of the layers in maps. */ tooltipSettings?: TooltipSettingsModel; /** * Gets or sets the options for customizing the shapes when clicking on the shapes in maps. */ selectionSettings?: SelectionSettingsModel; /** * Gets or sets the options for customizing the shapes when the mouse hovers over maps. */ highlightSettings?: HighlightSettingsModel; /** * Gets or sets the options for customizing the toggle state of shapes when selecting the legend in maps. */ toggleLegendSettings?: ToggleLegendSettingsModel; /** * Gets or sets the settings for the shapes to be selected when the maps rendering initially. * The initial selection of shapes will be performed only when the selection functionality of layer is enabled. */ initialShapeSelection?: InitialShapeSelectionSettingsModel[]; } /** * Interface for a class Tile */ export interface TileModel { } /** * Interface for a class MapsAreaSettings */ export interface MapsAreaSettingsModel { /** * Gets or sets the background color for the map area. * * @default null */ background?: string; /** * Gets or sets the options for customizing the style properties of the border of maps area. */ border?: BorderModel; }