UNPKG

@tabler/core

Version:

Premium and Open Source dashboard template with responsive and high quality UI.

170 lines (157 loc) 4.4 kB
--- title: Vector Maps description: Interactive guide to creating vector maps with jsVectorMap. summary: Vector maps are a great way to display geographical data in an interactive and visually appealing way. Learn how to create vector maps with jsVectorMap. --- ## Installation To use vector maps in your project, you need to include the jsVectorMap library in your project. You can install it via npm or include it directly from a CDN. The following example demonstrates how to include the jsVectorMap library from a CDN: ```html <script src="$TABLER_CDN/dist/libs/jsvectormap/dist/js/jsvectormap.min.js"></script> <script src="$TABLER_CDN/dist/libs/jsvectormap/dist/maps/js/jsvectormap-world.js"></script> ``` ## Sample demo Integrating the vector map into your website is straightforward. Below is a sample implementation for a world map: ```html <div id="map-world" class="w-100 h-100"></div> <script> document.addEventListener("DOMContentLoaded", function() { const map = new jsVectorMap({ selector: '#map-world', map: 'world', }); }); </script> ``` Look at the example below to see how the vector map works with a world map. ```html example vendors height="30rem" libs="jsvectormap,jsvectormap-world" background="surface" columns={2} centered <div class="card"> <div class="card-body"> <div class="ratio ratio-16x9"> <div> <div id="map-world" class="w-100 h-100"></div> </div> </div> </div> </div> <script> document.addEventListener("DOMContentLoaded", function() { const map = new jsVectorMap({ selector: '#map-world', map: 'world', backgroundColor: 'transparent', regionStyle: { initial: { fill: tabler.getColor('body-bg'), stroke: tabler.getColor('border-color'), strokeWidth: 2, } }, zoomOnScroll: false, zoomButtons: false, }); window.addEventListener("resize", () => { map.updateSize(); }); }); </script> ``` ## Markers You can add markers to the map to highlight specific locations. Below is a sample implementation for a world map with markers: ```html example vendors height="30rem" libs="jsvectormap,jsvectormap-world-merc" background="surface" columns={2} centered <div class="card"> <div class="card-body"> <div class="ratio ratio-16x9"> <div> <div id="map-world-markers" class="w-100 h-100"></div> </div> </div> </div> </div> <script> // @formatter:on document.addEventListener("DOMContentLoaded", function() { const map = new jsVectorMap({ selector: '#map-world-markers', map: 'world_merc', backgroundColor: 'transparent', regionStyle: { initial: { fill: tabler.getColor('body-bg'), stroke: tabler.getColor('border-color'), strokeWidth: 2, } }, zoomOnScroll: false, zoomButtons: false, markers: [ { coords: [61.524, 105.3188], name: "Russia", }, { coords: [56.1304, -106.3468], name: "Canada", }, { coords: [71.7069, -42.6043], name: "Greenland", }, { coords: [26.8206, 30.8025], name: "Egypt", }, { coords: [-14.235, -51.9253], name: "Brazil", }, { coords: [35.8617, 104.1954], name: "China", }, { coords: [37.0902, -95.7129], name: "United States", }, { coords: [60.472024, 8.468946], name: "Norway", }, { coords: [48.379433, 31.16558], name: "Ukraine", }, ], markerStyle: { initial: { r: 4, stroke: '#fff', opacity: 1, strokeWidth: 3, stokeOpacity: .5, fill: tabler.getColor('blue') }, hover: { fill: tabler.getColor('blue'), stroke: tabler.getColor('blue') } }, markerLabelStyle: { initial: { fontSize: 10 }, }, labels: { markers: { render: function(marker) { return marker.name }, }, }, }); window.addEventListener("resize", () => { map.updateSize(); }); }); // @formatter:off </script> ```