• Data Grid
• Grid Data Binding
• Paging and Scrolling
• Editing
• Grouping
• Filtering and Sorting
• Selection
• Columns
• State Persistence
• Appearance
• Templates
• Data Summaries
• Master-Detail
• Export
• Pivot Grid
• Pivot Grid Data Binding
• Pivot Grid Features
• Charts
• Data Binding
• Bar Series
• Line And Point Series
• Financial Series
• Area Series
• Range Series
• Pie Series
• Doughnut Series
• Sparklines
• Bullets
• Tree Map
• Gauges
• Data Binding
• Circular Gauge
• Linear Gauge
• Bar Gauge
• Tree View
• NavBar
• Toolbar
• Slideout
• Panorama
• Pivot
• Tabs
• Multi View
• Tab Panel
• Accordion
• Editors
• Check Box
• Switch
• Text Box
• Number Box
• Select Box
• Tag Box
• Text Area
• Date Box
• Color Box
• Calendar
• Autocomplete
• Validation
• Forms and Multi-Purpose
• Field Set
• Slider
• Range Slider
• Range Selector
• Box
• Responsive Box
• Scroll View
• Scheduler
• Form
• Actions and Lists
• Button
• Lookup
• Gallery
• List
• Action Sheet
• Tile View
• Maps
• Map
• Vector Map
• Popover
• Popup
• Toast
• Tooltip
• Progress Bar
Your search did not match any results.

# Custom Projection

Light
This demo illustrates the use of custom projections in the VectorMap widget. Wagner-VI projection is used in this example.

### Angular 2

\$(function(){ var RADIANS = Math.PI / 180, WAGNER_6_P_LAT = Math.PI / Math.sqrt(3), WAGNER_6_U_LAT = 2 / Math.sqrt(3) - 0.1; DevExpress.viz.map.projection.add("wagner-6", DevExpress.viz.map.projection({ aspectRatio: 2, to: function (coordinates) { var x = coordinates[0] * RADIANS, y = Math.min(Math.max(coordinates[1] * RADIANS, -WAGNER_6_P_LAT), +WAGNER_6_P_LAT), t = y / Math.PI; return [ x / Math.PI * Math.sqrt(1 - 3 * t * t), y * 2 / Math.PI ]; }, from: function (coordinates) { var x = coordinates[0], y = Math.min(Math.max(coordinates[1], -WAGNER_6_U_LAT), +WAGNER_6_U_LAT), t = y / 2; return [ x * Math.PI / Math.sqrt(1 - 3 * t * t) / RADIANS, y * Math.PI / 2 / RADIANS ]; } })); \$("#vector-map").dxVectorMap({ projection: DevExpress.viz.map.projection.get("wagner-6"), title: "Wagner VI projection", "export": { enabled: true }, layers: [ { dataSource: DevExpress.viz.map.sources.world }, { color: "#aaa", borderWidth: 1, hoverEnabled: false, dataSource: coordLinesData }] }); });
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <script src="js/jquery-3.1.0.min.js"></script> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/16.2.5/css/dx.spa.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/16.2.5/css/dx.common.css" /> <link rel="dx-theme" data-theme="generic.light" href="https://cdn3.devexpress.com/jslib/16.2.5/css/dx.light.css" /> <script src="https://cdn3.devexpress.com/jslib/16.2.5/js/dx.all.js"></script> <script src="https://cdn3.devexpress.com/jslib/16.2.5/js/vectormap-data/world.js"></script> <script src="https://cdn3.devexpress.com/jslib/16.2.5/js/vectormap-data/africa.js"></script> <script src="https://cdn3.devexpress.com/jslib/16.2.5/js/vectormap-data/canada.js"></script> <script src="https://cdn3.devexpress.com/jslib/16.2.5/js/vectormap-data/eurasia.js"></script> <script src="https://cdn3.devexpress.com/jslib/16.2.5/js/vectormap-data/europe.js"></script> <script src="https://cdn3.devexpress.com/jslib/16.2.5/js/vectormap-data/usa.js"></script> <script src="data.js"></script> <link rel="stylesheet" type ="text/css" href ="styles.css" /> <script src="index.js"></script> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="vector-map"></div> </div> </body> </html>
#vector-map { width: 100%; height: 400px; display: block; }
var coordLinesData = { type: "FeatureCollection", features: [] }; //add meridians for (var longitude = -180; longitude <= 180; longitude += 30) { var lineCoords = []; for (var latitude = -90; latitude <= 90; latitude += 5) { lineCoords.push([longitude, latitude]); } coordLinesData.features.push({ geometry: { type: "LineString", coordinates: lineCoords } }); } //add parallels for (var latitude = -90; latitude <= 90; latitude += 30) { coordLinesData.features.push({ geometry: { type: "LineString", coordinates: [[ -180, latitude ], [ 180, latitude]] } }); }