Your search did not match any results.
VectorMap

Custom Projection

Documentation

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

www.wikipedia.org
Copy to CodePen
Apply
Reset
window.onload = 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 ]; } })); var viewModel = { vectorMapOptions: { 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 }] } }; ko.applyBindings(viewModel, $("#vector-map-demo").get(0)); };
<!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> <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min.js"></script> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/17.2.3/css/dx.spa.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/17.2.3/css/dx.common.css" /> <link rel="dx-theme" data-theme="generic.light" href="https://cdn3.devexpress.com/jslib/17.2.3/css/dx.light.css" /> <script src="https://cdn3.devexpress.com/jslib/17.2.3/js/dx.all.js"></script> <script src="https://cdn3.devexpress.com/jslib/17.2.3/js/vectormap-data/world.js"></script> <script src="https://cdn3.devexpress.com/jslib/17.2.3/js/vectormap-data/africa.js"></script> <script src="https://cdn3.devexpress.com/jslib/17.2.3/js/vectormap-data/canada.js"></script> <script src="https://cdn3.devexpress.com/jslib/17.2.3/js/vectormap-data/eurasia.js"></script> <script src="https://cdn3.devexpress.com/jslib/17.2.3/js/vectormap-data/europe.js"></script> <script src="https://cdn3.devexpress.com/jslib/17.2.3/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-demo"> <div id="vector-map" data-bind="dxVectorMap: vectorMapOptions"></div> </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]] } }); }