Drilldown in Vue Maps component
16 Mar 20234 minutes to read
By clicking a continent, all the countries available in that continent can be viewed using the drill-down feature. For example, the countries in the Africa continent have been showcased here. To showcase all the countries in Africa continent by clicking the shapeSelected event as mentioned in the following example.
<template>
<div id="app">
<div class='wrapper'>
<ejs-maps ref="maps" :layers='layers' :shapeSelected='shapeSelected'>
</ejs-maps>
</div>
</div>
</template>
<script>
import { MapsComponent as EjsMaps, Marker } from '@syncfusion/ej2-vue-maps';
import { default_data } from './default-data.js';
import { world_map } from './world-map.js';
import { africa } from './africa.js';
export default {
name: "App",
components: {
"ejs-maps":MapsComponent,
},
data () {
return {
layers: [
{
shapeData: world_map,
shapePropertyPath: 'continent',
shapeDataPath: 'continent',
dataSource:default_data,
shapeSettings: {
colorValuePath: 'drillColor'
},
markerSettings: [{
visible: true,
template: '<div id="marker3" class="markerTemplate">Africa' +
'</div>',
dataSource: [
{ latitude: 10.97274101999902, longitude: 16.390625 }
],
animationDuration: 0
}]
},
{
shapeData: africa,
shapeSettings: {
fill: '#80306A'
},
highlightSettings: {
enable: true,
fill: '#80306A'
}
}]
}
},
provide: {
maps: [Marker]
},
methods: {
shapeSelected: function(args){
let shape = (args.shapeData).continent;
if (shape === 'Africa') {
this.$refs.maps.ej2Instances.baseLayerIndex = 1;
this.$refs.maps.ej2Instances.refresh();
}
}
}
}
</script>
<style>
.wrapper {
max-width: 400px;
margin: 0 auto;
}
</style>