VectorMap Configuration

An object that specifies configuration options for the VectorMap widget.

areaSettings

Deprecated

Use the "area" type element of the layers array.

An object specifying options for the map areas.

Type: Object

The map areas usually represent geographical objects, such as countries, continents, etc. The appearance of these areas is specified by the options of the areaSettings configuration object. If these options are defined on the first level of the areaSettings object, they are applied to all the map areas at once. However, you can specify several of these options for certain areas exclusively. See the customize option description to learn how.

background

Specifies the options for the map background.

Type: Object

The map background is a space on a map that does not contain areas. Within the background configuration object you can specify colors for the map background and its border.

Show Example:
jQuery

In this example, the background is colored in 'paleturquoise' using the color option. In addition, the background border is colored in 'dodgerblue' using the borderColor option.

<div id="mapContainer" style="height:500px; max-width:800px; margin: 0 auto"></div>
$(function () {
    $('#mapContainer').dxVectorMap({
        layers: [{
            type: 'area',
            dataSource: '/Content/data/vectorMap-sources/world.txt'
        }],
        background: {
            borderColor: 'dodgerblue',
            color: 'paleturquoise'
        }
    });
});

bounds

Specifies the positioning of a map in geographical coordinates.

Type: Array
Default Value: undefined
Cannot be used in themes.

When you need to display only a specific region on a map, rather than the whole thing, specify the geographical coordinates of this region using the bounds option. Assign an array of four values to this option. These values represent geographical coordinates in the following format: [minLongitude, maxLatitude, maxLongitude, minLatitude]. See the image below to discover how these values are applied to the map.

ChartMargin ChartJS

NOTE: Specifying the bounds option with the { minLon: minLongitude, maxLat: maxLatitude, maxLon: maxLongitude, minLat: minLatitude } object is now deprecated.

Show Example:
jQuery

In this example, the map is focused on the USA in code using the bounds array.

<div id="mapContainer" style="height:500px; max-width:800px; margin: 0 auto"></div>
var i = 0;

$(function () {
    $('#mapContainer').dxVectorMap({
        layers: [{
            type: 'area',
            dataSource: '/Content/data/vectorMap-sources/usa.txt',
            palette: 'Ocean',
            paletteSize: 10,
            customize: function () {
                return { paletteIndex: i++ % 10 };
            }
        }],
        bounds: [-135, 60, -65, 20]
    });
});

center

Specifies the geographical coordinates of the center for a map.

Type: Array
Default Value: [0, 0]
Cannot be used in themes.

By default, the map in the VectorMap widget is centered on the (0, 0) point. If you need to center the map on a different geographical point, assign an array of two values in the [longitude, latitude] form.

Show Example:
jQuery

In this example, the map is centered on Africa in code using the center option.

<div id="mapContainer" style="height:500px; max-width:800px; margin: 0 auto"></div>
var i = 0;

$(function () {
    $('#mapContainer').dxVectorMap({
        layers: [{
            type: 'area',
            dataSource: '/Content/data/vectorMap-sources/africa.txt',
            palette: 'Soft',
            paletteSize: 10,
            customize: function () {
                return { paletteIndex: i++ % 10 };
            }
        }],
        zoomFactor: 4.5,
        center: [20, 2]
    });
});

controlBar

Specifies the options of the control bar.

Type: Object

The control bar is a panel on a map that helps you navigate this map. This panel contains the pan control and the zoom bar for panning and zooming the map correspondingly. You can change the visibility of the control bar and adjust its colors using the options of the controlBar configuration object.

Show Example:
jQuery

In this example, the appearance of the control bar is changed using the controlBar configuration object.

<div id="mapContainer" style="height:500px; max-width:800px; margin: 0 auto"></div>
var i = 0;

$(function () {
    $('#mapContainer').dxVectorMap({
        layers: [{
            type: 'area',
            dataSource: '/Content/data/vectorMap-sources/world.txt',
            palette: 'Soft',
            paletteSize: 10,
            customize: function () {
                return { paletteIndex: i++ % 10 };
            }
        }],
        controlBar: {
            color: 'cornsilk',
            borderColor: 'goldenrod'
        }
    });
});

export

Configures the exporting and printing features.

Type: Object

These features allow a user to export your widget into a document or print it. When exporting is enabled, the "Exporting/Printing" button appears in the widget. A click on it invokes a drop-down menu that lists exporting and printing commands. The following formats are supported for exporting into: PNG, PDF, JPEG, SVG and GIF.

NOTE: IE9 and Safari on Mac OS do not implement an API for saving files. Therefore, exporting in these browsers requires setting up a server-side proxy. For details, refer to the proxyUrl option description.

See Also

Watch Video

layers

Specifies options for VectorMap widget layers.

Type: Array|Object
Default Value: undefined
Cannot be used in themes.

The vector map may contain several different layers. Each layer can be of "area", "line" or "marker" type.

The Z-order of layers depends on their order in the layers array in the following way: the first layer occupies the background, the last layer is brought to the foreground.

Show Example:
jQuery

In this example, areas are painted using the 'Vintage' palette. To specify different colors from this palette for the areas, the customize function returns an object that contains the specified palleteIndex field.

<div id="mapContainer" style="height:500px; max-width:800px; margin: 0 auto"></div>
$(function () {
    $('#mapContainer').dxVectorMap({
        layers: [{
            type: 'area',
            dataSource: '/Content/data/vectorMap-sources/world.txt',
            palette: 'Vintage',
            paletteSize: 8,
            customize: function (e) {
                for (i in e) e[i].applySettings({ paletteIndex: i++ % 8 });
            }
        }]
    });
});

legends[]

Configures map legends.

Type: Array
Default Value: undefined

A legend is a supplementary map element that helps end-users identify a map area or a map marker. The VectorMap widget can display several legends simultaneously. To configure legends, declare an array of objects and assign it to the legends option. Each object in this array specifies settings of one legend. These settings are described in this section.

Each legend requires the source option to be set. This option specifies whether it is areas or markers that must be accompanied with a legend. Learn more from the description of the source option.

A map legend contains several legend items. A legend item consists of a marker and a text. You can change the size of markers using the markerSize option. To provide texts for legend items, you need to implement the customizeText function.

View Demo

loadingIndicator

Configures the loading indicator.

Type: Object

When the widget visualizes local data, loading is instant. But when the widget is bound to a remote data source, loading may takes a considerable amount of time. To keep the viewer's attention, the widget can display a loading indicator.

DevExtreme HTML5 Charts LoadingIndicator

To activate the loading indicator, assign true to the loadingIndicator | show option. Once data is loaded, the loading indicator will be hidden automatically.

See Also

mapData

Deprecated

Use the layers | dataSource option instead.

Specifies a data source for the map area.

Type: Array|String
Default Value: undefined
Cannot be used in themes.

markers

Deprecated

Use the layers | dataSource option instead.

Specifies a data source for the map markers.

Type: Array|String
Default Value: undefined
Cannot be used in themes.

Data you need to provide for map markers depends on the type of the markers you use. Generally, you need to declare an array of objects, each of which must hold the coordinates field specifying geographical coordinates of a marker. Additionally, you need to specify the value field (for bubble markers), or the values field (for pie markers), or the url field (for image markers). To display a label for a marker, specify the text field.

For a more comprehensive description of how to provide data for map markers, see the Data for Markers topic.

markerSettings

Deprecated

Use the "marker" type element of the layers array.

An object specifying options for the map markers.

Type: Object

A marker is a point on a map accompanied by text that helps you flag places on the map. For example, you can use markers to designate cities on the map. The appearance of the markers is specified by the options of the markerSettings configuration object. If these options are defined on the first level of the markerSettings object, they are applied to all the markers at once. However, you can specify several of these options for certain markers exclusively. See the customize option description to learn how.

maxZoomFactor

Specifies a map's maximum zoom factor.

Type: Number
Default Value: 256
Cannot be used in themes.

An end-user will not be able to zoom into a map larger than the factor specified here.

Show Example:
jQuery

In this example, the map's maximum zoom factor is set to 3.

<div id="mapContainer" style="height:500px; max-width:800px; margin: 0 auto"></div>
$(function () {
    $('#mapContainer').dxVectorMap({
        layers:[{
            type: 'area',
            dataSource: '/Content/data/vectorMap-sources/world.txt',
            palette: 'Default',
            paletteSize: 9,
            customize: function (elements) {
                $.each(elements, function (i, element) {
                    element.applySettings({ paletteIndex: i % 9 });
                });
            }
        }],
        maxZoomFactor: 3
    });
});

onAreaClick

Deprecated

Use the onClick option instead.

A handler for the areaClick event.

Type: function |String
Function parameters:
e: Object
Information about the event.
Object structure:
component: Object
element: Object
The widget's container.
jQueryEvent: jQuery.Event
The jQuery event.
target: Area
The clicked area.
Cannot be used in themes.

When implementing a handling function, use the object passed to it as its parameter. Among the fields of this object, you can find the clicked area. An object that represents this area has fields and methods documented in the Area class description.

Alternatively, you can navigate to a specific URL when the areaClick event fires. For this purpose, assign this URL to the onAreaClick option.

View Demo

onAreaSelectionChanged

Deprecated

Use the onSelectionChanged option instead.

A handler for the areaSelectionChanged event.

Type: function
Function parameters:
e: Object
Information about the event.
Object structure:
component: Object
element: Object
The widget's container.
target: Area
The selected/deselected area.
Cannot be used in themes.

When implementing a handling function, use the object passed to it as its parameter. Among the fields of this object, you can find the selected/deselected area. An object that represents this area has fields and methods documented in the Area class description.

To identify whether an area has been selected or deselected, call its selected() method. Pass true or false to this method to select or deselect the area.

onCenterChanged

A handler for the centerChanged event.

Type: function
Function parameters:
e: Object
Information about the event.
Object structure:
component: Object
element: Object
The widget's container.
center: Array
The updated geographical coordinates of the center.
Cannot be used in themes.

If you need to perform specific actions when the coordinates of the map center are changed, handle the centerChanged event. One of the ways to do this is to assign a function to the onCenterChanged option. This function will be called every time a user moves the map or when the center is being changed in code by calling the center(centerCoordinates) or viewport(viewportCoordinates) method. When implementing this function, use the object passed to it as its parameter. Among the fields of this object, you can find the updated center coordinates.

View Demo

onClick

A handler for the click event.

Type: function |String
Function parameters:
e: Object
Information about the event.
Object structure:
component: Object
element: Object
The widget's container.
jQueryEvent: jQuery.Event
The jQuery event extended by the x and y fields.
target: Layer Element
The clicked layer element (if available).
Cannot be used in themes.

When implementing a handling function, use the object passed to it as its parameter. Among the fields of this object, you can find the object that represents the jQuery event extended by the following fields.

  • x
    Contains the X coordinate of the clicked point.
  • y
    Contains the Y coordinate of the clicked point.

NOTE: The coordinates are calculated relatively to the client area, i.e., the widget's container. To convert them into map coordinates, use the convertCoordinates(x,y) method.

Alternatively, you can navigate to a specific URL when the click event fires. For this purpose, assign this URL to the onClick option.

Show Example:
jQuery

In this example, you can select an area by a click.

<div id="mapContainer" style="height:500px; max-width:800px; margin: 0 auto"></div>
$(function () {
    $('#mapContainer').dxVectorMap({
        layers: [{
            type: 'area',
            dataSource: '/Content/data/vectorMap-sources/world.txt',
            hoverEnabled: false,
            selectedBorderColor: 'forestgreen'
        }],
        onClick: function (info) {
            var clickedArea = info.target;
            if (clickedArea && clickedArea.layer.type == 'area')
                clickedArea.selected(!clickedArea.selected());
        }
    });
});

onDisposing

A handler for the disposing event.

Type: function
Function parameters:
e: Object
Provides function parameters.
Object structure:
component: Object
Provides access to the widget instance.
element: jQuery
An HTML element of the widget.
model: Object
Provides access to the data that is available for binding against the element. Available only in the Knockout approach.
Default Value: null

Assign a function to perform a custom action when the widget is being removed.

NOTE: The function assigned to this option is executed only if the widget is removed using the remove(), empty(), or html() jQuery methods.

onDrawn

A handler for the drawn event.

Type: function(e)
Function parameters:
e: Object
Information about the event.
Object structure:
component: Object
The widget instance.
element: Object
The widget's container.
Cannot be used in themes.

Assign a callback function to this option if you need to perform specific actions when the widget has finished drawing itself. When implementing this function, you can access the drawn widget using the function's parameter.

onExported

A handler for the exported event.

Type: function(e)
Function parameters:
e: Object
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
Data that is available for binding against the element. Available only in the Knockout approach.
Default Value: null

To perform a custom action after data from the widget is exported, assign a function to this option. For example, this function can notify the user that the exporting has been completed. Within this function, you can use the object passed to it as the parameter.

See Also
  • export - configures client-side export and printing.
  • onExporting - allows you to request exporting details and prevent exporting.
  • onFileSaving - allows you to access exported data and/or prevent it from being saved into a file on the user's local storage.

onExporting

A handler for the exporting event.

Type: function(e)
Function parameters:
e: Object
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
model: Object
Data that is available for binding against the element. Available only in Knockout and AngularJS approaches.
fileName: String
The name of the file to which the widget is about to be exported.
cancel: Boolean
Assign true to this field if you need to prevent exporting.
Default Value: null

To perform a custom action before data from the widget is exported, assign a function to this option. Within this function, you can use the object passed to it as the parameter. For example, using the cancel field of this object, you can cancel exporting.

See Also
  • export - configures client-side export and printing.
  • onExported - allows you to notify an end user when exporting is completed.
  • onFileSaving - allows you to access exported data and/or prevent it from being saved into a file on the user's local storage.

onFileSaving

A handler for the fileSaving event.

Type: function(e)
Function parameters:
e: Object
Information about the event.
Object structure:
component: Object
The widget instance.
element: jQuery
The widget's container.
fileName: String
The name of the file to be saved.
format: String
The format of the file to be saved.
Possible Values: 'PNG' | 'PDF' | 'JPEG' | 'SVG' | 'GIF'
data: BLOB
Exported data as a BLOB.
cancel: Boolean
Assign true to this field if you need to prevent the file from being saved.
Default Value: null

To perform a custom action before a file with exported data is saved on the user's local storage, assign a function to this option. Within this function, you can use the object passed to it as the parameter. For example, using the cancel field of this object, you can cancel file saving.

See Also
  • export - configures client-side export and printing.
  • onExporting - allows you to request exporting details and prevent exporting.
  • onExported - allows you to notify an end user when exporting is completed.

onIncidentOccurred

A handler for the incidentOccurred event.

Type: function(e)
Function parameters:
e: Object
Information about the event.
Object structure:
component: Object
The widget instance.
element: Object
The widget's container.
target: Object
Information about the occurred incident.

When an error or warning appears, the widget notifies you by passing a message to the browser console. This message contains the ID of the incident, a brief description, and a link to the Errors and Warnings section where further information about this incident can be found. However, you can handle errors and warnings in the way that you require. To do this, implement a callback function performing the required actions and assign it to the onIncidentOccurred option. Within this function, you can use information about the incident that occurred. This information can be accessed from the target field of the object passed to the callback function as a parameter. This information includes the following.

  • id
    Contains the ID of the incident. The full list of IDs can be found in the Errors and Warnings section.
  • type
    Contains the type of the incident. This field equals 'error' for errors or 'warning' for warnings.
  • args
    Contains the argument of the incident's message. The content of this field varies greatly, depending on the incident. For example, it may contain the name of the data source field that was not specified correctly, or the name of the option that was not set properly.
  • text
    Contains the text passed to the browser console. This text includes the content of the args field, if there are any.
  • widget
    Contains the name of the widget that produced the error or warning.
  • version
    Contains the currently used version of the ChartJS library.

onInitialized

A handler for the initialized event.

Type: function
Function parameters:
e: Object
Provides function parameters.
Object structure:
component: Object
Provides access to the widget instance.
element: jQuery
An HTML element of the widget.
Default Value: null

Assign a function to perform a custom action when the widget is initialized.

onMarkerClick

Deprecated

Use the onClick option instead.

A handler for the markerClick event.

Type: function |String
Function parameters:
e: Object
Information about the event.
Object structure:
component: Object
element: Object
The widget's container.
jQueryEvent: jQuery.Event
The jQuery event.
target: Marker
The clicked marker.
Cannot be used in themes.

When implementing a handling function, use the object passed to it as its parameter. Among the fields of this object, you can find the clicked marker. An object that represents this marker has fields and methods documented in the Marker class description.

Alternatively, you can navigate to a specific URL when the markerClick event fires. For this purpose, assign this URL to the onMarkerClick option.

View Demo

onMarkerSelectionChanged

Deprecated

Use the onSelecitonChanged option instead.

A handler for the markerSelectionChanged event.

Type: function
Function parameters:
e: Object
Information about the event.
Object structure:
component: Object
element: Object
The widget's container.
target: Marker
The selected/deselected area.
Cannot be used in themes.

When implementing a handling function, use the object passed to it as its parameter. Among the fields of this object, you can find the selected/deselected marker. An object that represents this marker has fields and methods documented in the Marker class description.

To identify whether a marker has been selected or deselected, call its selected() method. Pass true or false to this method to select or deselect the marker.

onOptionChanged

A handler for the optionChanged event.

Type: function
Function parameters:
e: Object
Provides function parameters.
Object structure:
component: Object
Provides access to the widget instance.
name: String
Specifies the name of the option whose value is changed.
fullName: String
Specifies a full name of the option whose value is changed. The full name is formed by concatenating the names of the options that are presented in the hierarchy of the given option. The names are delimited by commas.
value: any
Specifies a new value for the option.
element: jQuery
An HTML element of the widget.
model: Object
Provides access to the data that is available for binding against the element. Available only in the Knockout approach.
Default Value: null

Assign a function to perform a custom action after an option of the component is changed.

onSelectionChanged

A handler for the selectionChanged event.

Type: function
Function parameters:
e: Object
Information about the event.
Object structure:
component: Object
element: Object
The widget's container.
target: Layer Element
The selected/deselected layer element.
Cannot be used in themes.

When implementing a handling function, use the object passed to it as its parameter. Among the fields of this object, you can find the selected/deselected layer element. An object that represents this element has fields and methods documented in the Layer Element class description.

To identify whether a layer element has been selected or deselected, call its selected() method. Pass true or false to this method to select or deselect the marker.

Show Example:
jQuery

In this example, you can select/deselect areas by a click. When the selection state of an area changes, the corresponding message appears below the map.

<div id="mapContainer" style="height: 500px; max-width: 800px; margin: 0 auto"></div>
<div id="selectionSpan" style="height: 25px; max-width: 500px; margin: 0px auto; text-align: center"></div>
$(function () {
    $('#mapContainer').dxVectorMap({
        layers: [{
            type: 'area',
            dataSource: '/Content/data/vectorMap-sources/world.txt',
            selectedBorderColor: 'white',
            selectedColor: 'lightskyblue',
            selectionMode: 'multiple'
        }],
        onClick: function (info) {
            var clickedArea = info.target;
            if (clickedArea != null && clickedArea.layer.type == "area")
                clickedArea.selected(!clickedArea.selected());
        },
        onSelectionChanged: function (info) {
            var selectedArea = info.target;
            if (selectedArea != null && selectedArea.layer.type == "area")
                selectedArea.selected() ?
                    $('#selectionSpan').html(selectedArea.attribute('name') + ' has been selected.') :
                    $('#selectionSpan').html(selectedArea.attribute('name') + ' has been deselected.');
        }
    });
});

onTooltipHidden

A handler for the tooltipHidden event.

Type: function(e)
Function parameters:
e: Object
Information about the event.
Object structure:
component: Object
The widget instance.
element: Object
The widget's container.
target: Object
The area or marker for which a tooltip was displayed.
Cannot be used in themes.

The tooltip becomes invisible when a user hovers the mouse cursor over another marker/area or moves it outside the widget.

When a tooltip is made hidden, you can perform specific actions by handling the tooltipHidden event. To do this, implement a handling function and assign it to this option. When implementing this function, use the object passed to it as its parameter. Among the fields of this object, you can find the area or marker whose tooltip becomes hidden.

onTooltipShown

A handler for the tooltipShown event.

Type: function(e)
Function parameters:
e: Object
Information about the event.
Object structure:
component: Object
The widget instance.
element: Object
The widget's container.
target: Object
The area or marker for which a tooltip is displayed.
Cannot be used in themes.

The tooltip appears when a user hovers the mouse cursor over a marker or area.

When a tooltip appears, you can perform specific actions by handling the tooltipShown event. To do this, implement a handling function and assign it to this option. When implementing this function, use the object passed to it as its parameter. Among the fields of this object, you can find the area or marker whose tooltip appears.

onZoomFactorChanged

A handler for the zoomFactorChanged event.

Type: function
Function parameters:
e: Object
Information about the event.
Object structure:
component: Object
element: Object
The widget's container.
zoomFactor: Number
The updated zoom factor.
Cannot be used in themes.

If you need to perform specific actions when the map zoom factor is changed, handle the zoomFactorChanged event. One of the ways to do this is to assign a function to the onZoomFactorChanged option. This function will be called every time a user zooms the map or when the zoom factor is changed from code by calling the zoomFactor(zoomFactor) or viewport(viewportCoordinates) method. When implementing this function, use the object passed to it as the parameter. Among the fields of this object, you can find the updated zoom factor.

View Demo

panningEnabled

Disables the panning capability.

Type: Boolean
Default Value: true

Setting this option to false disables a user to pan the map. However, you still can pan the map in code using the center(centerCoordinates) and viewport(viewportCoordinates) methods.

pathModified

Notifies a widget that it is embedded into an HTML page that uses a path modifier.

Type: Boolean
Default Value: false
Cannot be used in themes.

If you place a widget on a page that uses a path modifier, notify the widget about it by setting the pathModified option to true. As an example of such modifiers, the base HTML tag can be considered. Also, we recommend you enable this option if you place the widget inside the <iframe> tag.

projection

Specifies the map projection.

Type: Object
Default Value: undefined
Cannot be used in themes.

Pass the object returned by the projection(data) or get(name) method to this option.

View Demo

Show Example:
AngularJS
Knockout
jQuery

In this example, you can change the applied projection at runtime using the select box under the VectorMap widget. All projections presented in the select box are available out of the box.

<div ng-controller="vectorMapController">
    <div id="vectorMapContainer" style="height:400px; max-width:800px; margin:0 auto" dx-vector-map="{
        layers: {
            dataSource: '/Content/data/vectorMap-sources/world.txt',
            label: {
                enabled: true,
                dataField: 'name'
            },
            hoverEnabled: false
        }
    }"></div>
    <div style="max-width:230px; margin:0 auto; margin-top:5px" dx-select-box="{
        dataSource: projections,
        displayExpr: 'name',
        valueExpr: 'projection',
        value: projections[0].projection,
        onValueChanged: updateProjection
    }"></div>
</div>
var projections = [{
    name: 'Mercator projection',
    projection: DevExpress.viz.map.projection.get('mercator')
}, {
    name: 'Miller cylindrical projection',
    projection: DevExpress.viz.map.projection.get('miller')
}, {
    name: 'Equirectangular projection',
    projection: DevExpress.viz.map.projection.get('equirectangular')
}, {
    name: 'Lambert cylindrical projection',
    projection: DevExpress.viz.map.projection.get('lambert')
}];

angular
    .module('myApp', ['dx'])
    .controller('vectorMapController', function ($scope) {
        $scope.projections = projections;
        $scope.updateProjection = function (e) {
            $('#vectorMapContainer')
                .dxVectorMap('instance')
                .option('projection', e.value)
        };
    });

angular.element(document).ready(function () {
   angular.bootstrap(document, ['myApp']);
});

In this example, you can change the applied projection at runtime using the select box under the VectorMap widget. All projections presented in the select box are available out of the box.

<div style="height:400px; max-width:800px; margin:0 auto" data-bind="dxVectorMap: {
    layers: {
        dataSource: '/Content/data/vectorMap-sources/world.txt',
        label: {
            enabled: true,
            dataField: 'name'
        },
        hoverEnabled: false
    },
    projection: selectedProjection
}"></div>
<div style="max-width:230px; margin:0 auto; margin-top:5px" data-bind="dxSelectBox: {
    dataSource: projections,
    displayExpr: 'name',
    valueExpr: 'projection',
    value: selectedProjection
}"></div>
var projections = [{
    name: 'Mercator projection',
    projection: DevExpress.viz.map.projection.get('mercator')
}, {
    name: 'Miller cylindrical projection',
    projection: DevExpress.viz.map.projection.get('miller')
}, {
    name: 'Equirectangular projection',
    projection: DevExpress.viz.map.projection.get('equirectangular')
}, {
    name: 'Lambert cylindrical projection',
    projection: DevExpress.viz.map.projection.get('lambert')
}];

var viewModel = {
    projections: projections,
    selectedProjection: ko.observable(projections[0].projection)
};

ko.applyBindings(viewModel);

In this example, you can change the applied projection at runtime using the select box under the VectorMap widget. All projections presented in the select box are available out of the box.

<div id="vectorMapContainer" style="height:400px; max-width:800px; margin:0 auto"></div>
<div id="selectBoxContainer" style="max-width:230px; margin:0 auto; margin-top:5px"></div>
var projections = [{
    name: 'Mercator projection',
    projection: DevExpress.viz.map.projection.get('mercator')
}, {
    name: 'Miller cylindrical projection',
    projection: DevExpress.viz.map.projection.get('miller')
}, {
    name: 'Equirectangular projection',
    projection: DevExpress.viz.map.projection.get('equirectangular')
}, {
    name: 'Lambert cylindrical projection',
    projection: DevExpress.viz.map.projection.get('lambert')
}];

$(function () {
    var vectorMap = $("#vectorMapContainer").dxVectorMap({
        layers: {
            dataSource: '/Content/data/vectorMap-sources/world.txt',
            label: {
                enabled: true,
                dataField: 'name'
            },
            hoverEnabled: false
        }
    }).dxVectorMap('instance');

    $("#selectBoxContainer").dxSelectBox({
        dataSource: projections,
        displayExpr: 'name',
        valueExpr: 'projection',
        value: projections[0].projection,
        onValueChanged: function (e) {
            vectorMap.option('projection', e.value)
        }
    });
});

redrawOnResize

Specifies whether to redraw the widget when the size of the parent browser window changes or a mobile device rotates.

Type: Boolean
Default Value: true
Cannot be used in themes.

When this option is set to true, the widget will be redrawn automatically in case the size of its parent window changes.

NOTE: To redraw the widget after the size of its container has changed, call the render() method of the widget instance.

rtlEnabled

Specifies whether or not the widget supports right-to-left representation.

Type: Boolean
Default Value: false
Cannot be used in themes.

The most common scenario is switching all the widgets to a right-to-left reading order. In this instance, set the DevExpress.rtlEnabled field to true. If you need to switch the reading order in a particular widget, use the rtlEnabled configuration option of this widget.

size

Specifies the size of the widget in pixels.

Type: Object
Default Value: undefined

By default, the widget occupies the entire area of the parent container. If you need to set a particular size for the widget, different from the container's size, assign a height and width in pixels to height and width properties of the size object.

Using the size object, you can hide the widget. For this purpose, simply assign 0 to both the height and width of the widget.

Show Example:
jQuery

In this example, the size of the VectorMap widget is less than the container's size.

<div id="mapContainer" style="height:500px; max-width:800px; margin: 0 auto;border:1px solid black"></div>
var i = 0;

$(function () {
    $('#mapContainer').dxVectorMap({
        layers: [{
            type: 'area',
            dataSource: '/Content/data/vectorMap-sources/world.txt',
            palette: 'Default',
            paletteSize: 10,
            customize: function () {
                return {
                    paletteIndex: i++ % 10
                };
            }
        }],
        size: {
            width: 700,
            height: 400
        }
    });
});

theme

Sets the name of the theme to be used in the widget.

Type: String
Default Value: 'generic.light'
Accepted Values: 'generic.light' | 'generic.dark' | 'generic.contrast' | 'android5.light' | 'ios7.default' | 'win10.black' | 'win10.white'

Use this property to set a predefined or custom theme. The options defining chart appearance will be set to the values that are set in the specified theme. You can override some of these values within the chart's configuration object.

NOTE: The following themes were deprecated or renamed: 'desktop', 'desktop-dark', 'android', 'android-holo-light', 'ios', 'win8', 'win8-white', 'win8.white', 'win8.black'. In new applications, use themes listed in the accepted values.

Show Example:
jQuery

This example shows how to implement a custom theme on the base of a predefined one.

<div id="mapContainer" style="height:500px; max-width:800px; margin: 0 auto"></div>
var i = 0;

var greenTheme = {
    name: 'mapGreenTheme',
    map: {
        background: {
            color: 'lightgreen'
        },
        controlBar: {
            borderColor: 'seagreen',
            color: 'darkseagreen'
        }
    }
};

DevExpress.viz.registerTheme(greenTheme, 'generic.light');

$(function () {
    $('#mapContainer').dxVectorMap({
        layers: [{
            type: 'area',
            dataSource: '/Content/data/vectorMap-sources/world.txt'
        }],
        theme: 'mapGreenTheme'
    });
});

title

Specifies the widget title.

Type: Object|String

Use this property to set the text to be displayed as the widget title. If you need to specify the title's position in the widget, assign an object to the title property with the required fields specified. In this instance, set the title's text using the text property.

The widget can display additional text in the subtitle. It is placed under the title. Use properties of the subtitle object to assign a text to the subtitle and change its font.

tooltip

Configures tooltips.

Type: Object

A tooltip is a miniature rectangle displaying data of an area or a marker. A tooltip appears when the end-user hovers the cursor over an area or a marker. To show tooltips, do the following.

  • Enable tooltips.
    Set the enabled option to true.

  • Specify text to be displayed in tooltips. Specify the customizeTooltip option.

You can also change the appearance of tooltips using fields of the tooltip configuration object.

View Demo

Show Example:
jQuery

In this example, tooltips display the name of the area that is currently hovered over. The tooltips' borders are colored in 'royalblue' using the border | color option. In addition, the tooltips' font color is set to 'dodgerblue' using the font | color option.

<div id="mapContainer" style="height:500px; max-width:800px; margin: 0 auto"></div>
var i = 0;

$(function () {
    $('#mapContainer').dxVectorMap({
        layers: [{
            type: 'area',
            dataSource: '/Content/data/vectorMap-sources/world.txt',
            palette: 'Ocean',
            paletteSize: 5,
            customize: function () {
                return {
                    paletteIndex: i++ % 5
                };
            }
        }],
        tooltip: {
            enabled: true,
            border: { color: 'royalblue' },
            customizeTooltip: function () {
                return {
                    text: this.attribute('name')
                };
            },
            font: {
                color: 'dodgerblue'
            }
        }
    });
});

touchEnabled

Specifies whether the map should respond to touch gestures.

Type: Boolean
Default Value: true

Assign false to this option if your map is not supposed to be viewed on touch-enabled devices.

wheelEnabled

Specifies whether or not the map should respond when a user rolls the mouse wheel.

Type: Boolean
Default Value: true

Rolling the mouse wheel zooms a map. If you need to disable this capability, assign false to the wheelEnabled option. A user will still be able to zoom the map using the control bar.

zoomFactor

Specifies a number that is used to zoom a map initially.

Type: Number
Default Value: 1
Cannot be used in themes.

Use this option to specify a zoom factor for a map while configuring it. This option accepts a value that is greater than 1. Note that the zooming is performed with relation to the center of the map.

Show Example:
jQuery

In this example, the map is initially zoomed twice as the zoomFactor option is set to 2.

<div id="mapContainer" style="height:500px; max-width:800px; margin: 0 auto"></div>
$(function () {
    $('#mapContainer').dxVectorMap({
        layers: [{
            type: 'area',
            dataSource: '/Content/data/vectorMap-sources/world.txt',
            palette: 'Default',
            paletteSize: 9,
            customize: function (elements) {
                $.each(elements, function (i, element) {
                    element.applySettings({ paletteIndex: i % 9 });
                });
            }
        }],
        zoomFactor: 2
    });
});

zoomingEnabled

Disables the zooming capability.

Type: Boolean
Default Value: true

Setting this option to false disables a user's ability to zoom the map. However, you can still zoom the map in code using the zoomFactor(zoomFactor) method.