User interactions in Angular Maps component
13 Jun 202424 minutes to read
Zooming
The zooming feature is used to zoom in and out of Maps to show in-depth information. It is controlled by the zoomFactor
property of the zoomSettings
. The zoomFactor
is increased or decrease dynamically based on zoom in and out interaction.
Enable zooming
Zooming of Maps is enabled by setting the enable
property of zoomSettings
to true.
Enable panning
To enable the panning feature, set the enablePanning
property of zoomSettings
to true.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule } from '@syncfusion/ej2-angular-maps'
import { ZoomService } from '@syncfusion/ej2-angular-maps'
import { Component, OnInit } from '@angular/core';
import { world_map } from './world-map';
@Component({
imports: [
MapsModule
],
providers: [ZoomService],
standalone: true,
selector: 'app-container',
template:
`<ejs-maps id='rn-container' [zoomSettings] = 'zoomSettings'>
<e-layers>
<e-layer [shapeData] = 'shapeData'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public zoomSettings?: object;
public shapeData?: object;
ngOnInit(): void {
this.zoomSettings = {
enable: true,
enablePanning: true
};
this.shapeData = world_map;
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
app.module.ts
Injecting ZoomService into NgModule.
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
// import the MapsModule for the Maps component
import { MapsModule, ZoomService} from '@syncfusion/ej2-angular-maps';
import { AppComponent } from './app.component';
@NgModule({
// declaration of ej2-angular-maps module into NgModule
imports: [ BrowserModule, MapsModule ],
declarations: [ AppComponent ],
providers: [ZoomService],
bootstrap: [ AppComponent ]
})
export class AppModule { }
Various type of zooming
Zooming can be performed in following types:
Zooming toolbar
The following options are available in toolbar.
- Zoom - Provides rectangular zoom support.
- ZoomIn - Zooms in the Maps.
- ZoomOut - Zooms out the Maps.
- Pan - Switches to panning if rectangular zoom is activated.
- Reset - Restores the Maps to the default view.
import { Component, OnInit } from '@angular/core';
import { Maps, Zoom } from '@syncfusion/ej2-angular-maps';
import { world_map } from 'world-map.ts';
Maps.Inject(Zoom);
@Component({
selector: 'app-container',
template:
`<ejs-maps id='rn-container' [zoomSettings] = 'zoomSettings'>
<e-layers>
<e-layer [shapeData] = 'shapeData'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public zoomSettings: object;
public shapeData: object;
ngOnInit(): void {
this.zoomSettings = {
enable: true,
toolbarSettings: {
buttonSettings: {
toolbarItems: ['Zoom', 'ZoomIn', 'ZoomOut', 'Pan', 'Reset'],
}
}
};
this.shapeData = world_map;
}
}
Pinch zooming
To enable or disable the pinch zooming, use the pinchZooming
property in zoomSettings
.
import { Component, OnInit } from '@angular/core';
import { Maps, Zoom } from '@syncfusion/ej2-angular-maps';
import { world_map } from 'world-map.ts';
Maps.Inject(Zoom);
@Component({
selector: 'app-container',
template:
`<ejs-maps id='rn-container' [zoomSettings] = 'zoomSettings'>
<e-layers>
<e-layer [shapeData] = 'shapeData'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public zoomSettings: object;
public shapeData: object;
ngOnInit(): void {
this.zoomSettings = {
enable: true,
pinchZooming:true
};
this.shapeData = world_map;
}
}
Single-click zooming
To enable or disable the single-click zooming, use the zoomOnClick
property in zoomSettings
.
import { Component, OnInit } from '@angular/core';
import { Maps, Zoom } from '@syncfusion/ej2-angular-maps';
import { world_map } from 'world-map.ts';
Maps.Inject(Zoom);
@Component({
selector: 'app-container',
template:
`<ejs-maps id='rn-container' [zoomSettings] = 'zoomSettings'>
<e-layers>
<e-layer [shapeData] = 'shapeData'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public zoomSettings: object;
public shapeData: object;
ngOnInit(): void {
this.zoomSettings = {
enable: true,
zoomOnClick:true
};
this.shapeData = world_map;
}
}
Double-click zooming
To enable or disable the double-click zooming, use the doubleClickZoom
property in zoomSettings
.
import { Component, OnInit } from '@angular/core';
import { Maps, Zoom } from '@syncfusion/ej2-angular-maps';
import { world_map } from 'world-map.ts';
Maps.Inject(Zoom);
@Component({
selector: 'app-container',
template:
`<ejs-maps id='rn-container' [zoomSettings] = 'zoomSettings'>
<e-layers>
<e-layer [shapeData] = 'shapeData'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public zoomSettings: object;
public shapeData: object;
ngOnInit(): void {
this.zoomSettings = {
enable: true,
doubleClickZoom:true
};
this.shapeData = world_map;
}
}
Mouse wheel zooming
To enable or disable mouse wheel zooming, use the mouseWheelZoom
property in zoomSettings
.
import { Component, OnInit } from '@angular/core';
import { Maps, Zoom } from '@syncfusion/ej2-angular-maps';
import { world_map } from 'world-map.ts';
Maps.Inject(Zoom);
@Component({
selector: 'app-container',
template:
`<ejs-maps id='rn-container' [zoomSettings] = 'zoomSettings'>
<e-layers>
<e-layer [shapeData] = 'shapeData'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public zoomSettings: object;
public shapeData: object;
ngOnInit(): void {
this.zoomSettings = {
enable: true,
mouseWheelZoom:true
};
this.shapeData = world_map;
}
}
Selection zooming
To enable or disable selection zooming, use the enableSelectionZooming
property in zoomSettings
. The enablePanning
property must be set to false to enable the selection zooming in Maps.
import { Component, OnInit } from '@angular/core';
import { Maps, Zoom } from '@syncfusion/ej2-angular-maps';
import { world_map } from 'world-map.ts';
Maps.Inject(Zoom);
@Component({
selector: 'app-container',
template:
`<ejs-maps id='rn-container' [zoomSettings] = 'zoomSettings'>
<e-layers>
<e-layer [shapeData] = 'shapeData'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public zoomSettings: object;
public shapeData: object;
ngOnInit(): void {
this.zoomSettings = {
enable: true,
enableSelectionZooming: true,
enablePanning: false
};
this.shapeData = world_map;
}
}
Setting minimum and maximum values for zoom factor
The zooming range can be adjusted using the minZoom
and maxZoom
properties in zoomSettings
. The minZoom value is set to 1 by default, and the maxZoom value is set to 10.
import { Component, OnInit } from '@angular/core';
import { Maps, Zoom } from '@syncfusion/ej2-angular-maps';
import { world_map } from 'world-map.ts';
Maps.Inject(Zoom);
@Component({
selector: 'app-container',
template:
`<ejs-maps id='rn-container' [zoomSettings] = 'zoomSettings'>
<e-layers>
<e-layer [shapeData] = 'shapeData'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public zoomSettings: object;
public shapeData: object;
ngOnInit(): void {
this.zoomSettings = {
enable: true,
minZoom: 2,
maxZoom: 12
};
this.shapeData = world_map;
}
}
Zooming with animation
To zoom in or zoom out the Maps with animation, use the animationDuration
property in layers
.
import { Component, OnInit } from '@angular/core';
import { Maps, Zoom } from '@syncfusion/ej2-angular-maps';
import { world_map } from 'world-map.ts';
Maps.Inject(Zoom);
@Component({
selector: 'app-container',
template:
`<ejs-maps id='rn-container' [zoomSettings] = 'zoomSettings'>
<e-layers>
<e-layer [shapeData] = 'shapeData' [animationDuration] = 'animationDuration'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public zoomSettings: object;
public shapeData: object;
public animationDuration: number;
ngOnInit(): void {
this.zoomSettings = {
enable: true,
mouseWheelZoom:true
};
this.animationDuration = 500;
this.shapeData = world_map;
}
}
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule } from '@syncfusion/ej2-angular-maps'
import { ZoomService } from '@syncfusion/ej2-angular-maps'
import { Component, OnInit } from '@angular/core';
import { world_map } from './world-map';
@Component({
imports: [
MapsModule
],
providers: [ZoomService],
standalone: true,
selector: 'app-container',
template:
`<ejs-maps id='rn-container' [zoomSettings] = 'zoomSettings'>
<e-layers>
<e-layer [shapeData] = 'shapeData'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public zoomSettings?: object;
public shapeData?: object;
ngOnInit(): void {
this.zoomSettings = {
enable: true,
};
this.shapeData = world_map;
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
Customizing the zoom toolbar
The zoom toolbar can be customized by using the toolbarSettings option in the zoomSettings. The following properties can be used to customize the zoom toolbar.
- backgroundColor - It is used to customize the background color of the zoom toolbar.
- borderOpacity - It is used to customize the opacity of the border of the zoom toolbar.
- borderWidth - It is used to customize the thickness of the border of the zoom toolbar.
- borderColor - It is used to customize the color of the border of the zoom toolbar.
- horizontalAlignment - It is used to position the zoom toolbar in near, far, and center positions to customize its horizontal placement.
- verticalAlignment - It is used to position the zoom toolbar in near, far, and center positions to customize its vertical placement.
- orientation - It is used to change the orientation (horizontal/vertical) of the zoom toolbar.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule } from '@syncfusion/ej2-angular-maps'
import { ZoomService } from '@syncfusion/ej2-angular-maps'
import { Component, OnInit } from '@angular/core';
import { world_map } from './world-map';
@Component({
imports: [
MapsModule
],
providers: [ZoomService],
standalone: true,
selector: 'app-container',
template:
`<ejs-maps id='rn-container' [zoomSettings] = 'zoomSettings'>
<e-layers>
<e-layer [shapeData] = 'shapeData' [shapeSettings]="shapeSettings"></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public zoomSettings?: object;
public shapeSettings?: object;
public shapeData?: object;
ngOnInit(): void {
this.zoomSettings = {
enable: true,
toolbarSettings:{
orientation:'Vertical',
backgroundColor:'pink',
borderWidth:3,
borderColor:'green',
verticalAlignment:'Near',
buttonSettings: {
toolbarItems: ['Zoom', 'ZoomIn', 'ZoomOut', 'Pan', 'Reset']
}
}
};
this.shapeSettings = {
fill: '#C1DFF5'
}
this.shapeData = world_map;
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
Customizing the buttons in the zoom toolbar
The appearance of the buttons in the zoom toolbar can be customized by using the buttonSettings option in the toolbarSettings of the zoomSettings property. The following properties can be used to customize the zoom toolbar buttons.
- fill - It is used to set the background color of the buttons.
- color - It is used to customize the color of the icons inside the button.
- borderOpacity - It is used to set the opacity of the border of the zoom toolbar buttons.
- borderWidth - It is used to set the thickness of the border of the zoom toolbar buttons.
- borderColor - It is used to set the color of the border of the zoom toolbar buttons.
- radius - It is used to set the size of the button.
- selectionColor - It is used to set the color of the icons inside the button when selection is performed.
- highlightColor - It is used to change the color of the button when the mouse is hovered over it.
- padding - It is used to change the padding space between each button.
- opacity - It is used to change the opacity of the button.
- toolbarItems - It is used to change the items that should be displayed in the zoom toolbar. By default, zoom-in, zoom-out, and reset buttons will be available. Other options include selection zoom and panning.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule } from '@syncfusion/ej2-angular-maps'
import { ZoomService } from '@syncfusion/ej2-angular-maps'
import { Component, OnInit } from '@angular/core';
import { world_map } from './world-map';
@Component({
imports: [
MapsModule
],
providers: [ZoomService],
standalone: true,
selector: 'app-container',
template:
`<ejs-maps id='rn-container' [zoomSettings] = 'zoomSettings'>
<e-layers>
<e-layer [shapeData] = 'shapeData' [shapeSettings]="shapeSettings"></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public zoomSettings?: object;
public shapeSettings?: object;
public shapeData?: object;
ngOnInit(): void {
this.zoomSettings = {
enable: true,
toolbarSettings:{
buttonSettings: {
fill:'pink',
padding: 10,
toolbarItems: ['Zoom', 'ZoomIn', 'ZoomOut', 'Pan', 'Reset'],
color: 'red',
borderColor:'green',
radius:35,
selectionColor:'#d55e5e',
hightlightColor:'#5ed59a',
opacity:0.6,
borderWidth: 2
}
}
};
this.shapeSettings = {
fill: '#C1DFF5'
}
this.shapeData = world_map;
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
Customizing the tooltip of the zoom toolbar
The appearance of the tooltip of the zoom toolbar can be customized by using the tooltipSettings option in the toolbarSettings of the zoomSettings property. The following properties are available to customize the zoom toolbar tooltip.
- visible - Enables or disables the tooltip of the zoom toolbar.
- fill - It is used to change the background color of the tooltip of the zoom toolbar.
- borderOpacity - It is used to change the opacity of the border of the zoom toolbar’s tooltip.
- borderWidth - It is used to change the thickness of the border of the zoom toolbar’s tooltip.
- borderColor - It is used to change the color of the border of the zoom toolbar’s tooltip.
- fontColor - It is used to change the color of the text in the tooltip of the zoom toolbar.
- fontFamily - It is used to change the font family of the text in the tooltip of the zoom toolbar.
- fontStyle - It is used to change the font style of the text in the tooltip of the zoom toolbar.
- fontWeight - It is used to change the font weight of the text in the tooltip of the zoom toolbar.
- fontSize - It is used to change the size of the text in the tooltip of the zoom toolbar.
- fontOpacity - It is used to change the opacity of the text in the tooltip of the zoom toolbar.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule } from '@syncfusion/ej2-angular-maps'
import { ZoomService } from '@syncfusion/ej2-angular-maps'
import { Component, OnInit } from '@angular/core';
import { world_map } from './world-map';
@Component({
imports: [
MapsModule
],
providers: [ZoomService],
standalone: true,
selector: 'app-container',
template:
`<ejs-maps id='rn-container' [zoomSettings] = 'zoomSettings'>
<e-layers>
<e-layer [shapeData] = 'shapeData' [shapeSettings]="shapeSettings"></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public zoomSettings?: object;
public shapeSettings?: object;
public shapeData?: object;
ngOnInit(): void {
this.zoomSettings = {
enable: true,
toolbarSettings:{
tooltipSettings:{
visible:true,
borderWidth:2,
borderColor:'green',
fontColor:'black',
fill:'violet',
fontFamily:'Times New Roman',
fontWeight:200,
fontSize:'22px',
fontOpacity:1
},
buttonSettings: {
toolbarItems: ['Zoom', 'ZoomIn', 'ZoomOut', 'Pan', 'Reset']
}
}
};
this.shapeSettings = {
fill: '#C1DFF5'
}
this.shapeData = world_map;
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
Selection
Each shape in the Maps can be selected and deselected during interaction with the shapes. Selection is enabled by setting the enable
property of selectionSettings
to true.
The following properties are available to customize the selection of Maps elements such as shapes, bubbles, markers and legends.
-
border
- To customize the color, width and opacity of the border of which element is selected in Maps. -
fill
- Applies the color for the element that is selected. -
opacity
- To customize the transparency for the element that is selected. -
enableMultiSelect
- To enable or disable the selection for multiple shapes or markers or bubbles in the Maps.
By tapping on the specific legend, the shapes which are bounded to the selected legend is also selected and vice versa.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule } from '@syncfusion/ej2-angular-maps'
import { LegendService, SelectionService } from '@syncfusion/ej2-angular-maps'
import { Component, OnInit } from '@angular/core';
import { world_map } from './world-map';
@Component({
imports: [
MapsModule
],
providers: [LegendService, SelectionService],
standalone: true,
selector: 'app-container',
template:
`<ejs-maps id='rn-container' [legendSettings]='legendSettings'>
<e-layers>
<e-layer [shapeData] = 'shapeData' [shapePropertyPath]='shapePropertyPath' [shapeDataPath]='shapeDataPath' [dataSource]='dataSource' [shapeSettings]='shapeSettings' [selectionSettings] ='selectionSettings'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public selectionSettings?: object;
public shapeData?: object;
public shapePropertyPath?: string;
public shapeDataPath?: string;
public dataSource?: object;
public shapeSettings?: object;
public legendSettings?: object;
ngOnInit(): void {
this.selectionSettings = {
enable: true,
fill: 'blue',
border: { color: 'white', width: 2}
};
this.shapeData = world_map;
this.shapePropertyPath = "name";
this.shapeDataPath = "Country";
this.dataSource = [
{ "Country": "China", "Membership": "Permanent"},
{ "Country": "France","Membership": "Permanent" },
{ "Country": "Russia","Membership": "Permanent"},
{ "Country": "Kazakhstan","Membership": "Non-Permanent"},
{ "Country": "Poland","Membership": "Non-Permanent"},
{ "Country": "Sweden","Membership": "Non-Permanent"}
];
this.shapeSettings = {
colorValuePath: 'Membership',
colorMapping: [
{
value: 'Permanent', color: '#D84444'
},
{
value: 'Non-Permanent', color: '#316DB5'
}]
};
this.legendSettings = {
visible: true
}
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
Enable selection for bubbles
To enable the selection for bubbles in Maps, set the selectionSettings
in bubbleSettings
and set the enable
property of selectionSettings
as true.
To use the bubble feature, the Bubble module must be injected.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule } from '@syncfusion/ej2-angular-maps'
import { BubbleService, SelectionService } from '@syncfusion/ej2-angular-maps'
import { Component, OnInit } from '@angular/core';
import { world_map } from './world-map';
@Component({
imports: [
MapsModule
],
providers: [BubbleService, SelectionService],
standalone: true,
selector: 'app-container',
template:
`<ejs-maps id='rn-container'>
<e-layers>
<e-layer [shapeData]= 'shapeData' [bubbleSettings] = 'bubbleSettings'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public shapeData?: object;
public shapeDataPath?: object | any;
public shapePropertyPath?: object | any;
public bubbleSettings?: object;
ngOnInit(): void {
this.shapeData = world_map;
this.shapeDataPath = 'name',
this.shapePropertyPath = 'name',
this.bubbleSettings = [{
visible: true,
dataSource: [
{ name: 'India', population: '38332521' },
{ name: 'South Africa', population: '19651127' },
{ name: 'Pakistan', population: '3090416' }
],
selectionSettings: {
enable: true,
fill: 'green',
border: { color: 'white', width: 2}
},
valuePath: 'population'
}]
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
Enable selection for markers
To enable the selection for markers in Maps, set the selectionSettings
in the markerSettings
and set the enable
property of the selectionSettings
as true.
To use the marker feature, the Marker module must be injected.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule } from '@syncfusion/ej2-angular-maps'
import { MarkerService, SelectionService } from '@syncfusion/ej2-angular-maps'
import { Component, OnInit } from '@angular/core';
import { world_map } from './world-map';
@Component({
imports: [
MapsModule
],
providers: [MarkerService, SelectionService],
standalone: true,
selector: 'app-container',
template:
`<ejs-maps id='rn-container'>
<e-layers>
<e-layer [shapeData]= 'shapeData' [markerSettings] = 'markerSettings'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public shapeData?: object;
public markerSettings?: object;
ngOnInit(): void {
this.shapeData = world_map;
this.markerSettings = [{
visible: true,
height: 20,
width: 20,
fill: 'green',
shape:'Balloon',
selectionSettings: {
enable: true,
fill: 'blue',
border: { color: 'white', width: 2}
},
dataSource: [
{ latitude: 49.95121990866204, longitude: 18.468749999999998, name:'Europe' },
{ latitude: 59.88893689676585, longitude: -109.3359375, name:'North America'},
{ latitude: -6.64607562172573, longitude: -55.54687499999999, name:'South America'}
]
}];
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
Enable selection for polygons
When the enable property of selectionSettings is set to true, the polygon shapes can be selected via user interaction. The following properties are available in selectionSettings
to customize the polygon shape when it is selected.
- enableMultiSelect - It is used to enable multiple selection of polygon shapes.
- fill - It is used to change the color of the selected polygon shape.
- opacity - It is used to change the opacity of the selected polygon shape.
- border - This property is used to change the color, width, and opacity of the border of the selected polygon shape.
To use the polygon feature, the Polygon module must be injected, as described in this link.
The following example shows how to select the polygon shape in the geometry map.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule, PolygonService, SelectionService, HighlightService } from '@syncfusion/ej2-angular-maps'
import { Component, ViewEncapsulation, OnInit } from '@angular/core';
import { world_map } from './world-map';
@Component({
imports: [
MapsModule
],
providers: [PolygonService, SelectionService, HighlightService],
standalone: true,
selector: 'app-container',
template: `<div class="control-section">
<div align='center'>
<ejs-maps id='container' style="display:block;">
<e-layers>
<e-layer [shapeData]='shapeData' [polygonSettings]='polygonSettings'></e-layer>
</e-layers>
</ejs-maps>
</div>
</div>`,
encapsulation: ViewEncapsulation.None,
})
export class AppComponent implements OnInit {
public shapeData?: object;
public polygonSettings?: object;
ngOnInit(): void {
this.polygonSettings = {
polygons: [
{
points: [
{ longitude: -1.8920678947185365, latitude: 35.06195799239681 },
{ longitude: -1.6479633699113947, latitude: 33.58989612266137 },
{ longitude: -1.4201220366858252, latitude: 32.819439646045254 },
{ longitude: -1.197974596225663, latitude: 32.26940895444655 },
{ longitude: -2.891112397949655, latitude: 32.10303058820031 },
{ longitude: -3.8246984550501963, latitude: 31.34551662687602 },
{ longitude: -3.720166273688733, latitude: 30.758086682848685 },
{ longitude: -5.6571886081189575, latitude: 29.613582597203006 },
{ longitude: -7.423353242214745, latitude: 29.44328441403087 },
{ longitude: -8.6048931685323, latitude: 28.761444633616776 },
{ longitude: -8.695726975465703, latitude: 27.353491085576195 },
{ longitude: 3.837867279970908, latitude: 19.15916564839422 },
{ longitude: 6.0705408799045415, latitude: 19.48749097192868 },
{ longitude: 12.055736352807713, latitude: 23.694596786078293 },
{ longitude: 11.272522332402986, latitude: 24.289329186946034 },
{ longitude: 10.30872578261932, latitude: 24.65419958524693 },
{ longitude: 9.910236690050027, latitude: 25.48943950947175 },
{ longitude: 9.432639882414293, latitude: 26.398372489836902 },
{ longitude: 9.898266456582292, latitude: 26.73489453809293 },
{ longitude: 9.560243026853641, latitude: 30.31040379467153 },
{ longitude: 8.943853847283322, latitude: 32.350324876652195 },
{ longitude: 7.57004059025715, latitude: 33.75071049019398 },
{ longitude: 8.0906322609153, latitude: 34.69043151009983 },
{ longitude: 8.363285449347273, latitude: 35.38654406371319 },
{ longitude: 8.26139549449448, latitude: 36.44751078733985 },
{ longitude: 8.61100824823302, latitude: 36.881913362940196 },
{ longitude: 7.4216488925819135, latitude: 37.021408008916254 },
{ longitude: 6.461182254165351, latitude: 36.99092409199429 },
{ longitude: 5.297178918070159, latitude: 36.69985479014656 },
{ longitude: 3.6718056161224695, latitude: 36.86470546831693 },
{ longitude: 1.2050052555659931, latitude: 36.57658056301722 },
{ longitude: -0.26968570003779746, latitude: 35.806903541813625 },
{ longitude: -0.995191786435754, latitude: 35.58466127904214 },
{ longitude: -1.8920678947185365, latitude: 35.06195799239681 }
],
fill: 'blue',
opacity: 0.7,
borderColor: 'green',
borderWidth: 2,
borderOpacity: 0.7
}
],
highlightSettings: {
enable: true,
fill: 'blue',
opacity: 0.7,
border: {
color: 'green',
width: 2,
opacity: 0.7
}
},
selectionSettings: {
enable: true,
fill: 'violet',
enableMultiSelect: false,
opacity: 0.8,
border: {
color: 'cyan',
opacity: 1,
width: 7
}
}
};
this.shapeData = world_map;
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
Public method for the shape selection
The shapeSelection
method can be used to select each shape in the Maps.
LayerIndex, propertyName, country name, and selected value as a boolean state(true / false) are the input parameters for this method.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule } from '@syncfusion/ej2-angular-maps'
import { SelectionService } from '@syncfusion/ej2-angular-maps'
import { Component, ViewEncapsulation, ViewChild } from '@angular/core';
import { MapsComponent} from '@syncfusion/ej2-angular-maps';
import { world_map } from './world-map';
@Component({
imports: [
MapsModule
],
providers: [SelectionService],
standalone: true,
selector: 'app-container',
template:
`<ejs-maps id='rn-container' #maps>
<e-layers>
<e-layer [shapeData]= 'shapeData' [selectionSettings] ='selectionSettings'></e-layer>
</e-layers>
</ejs-maps> <button id='select' (click)='select()'>select</button> <button id='unselect' (click)='unselect()'>unselect</button>`
})
export class AppComponent {
@ViewChild('maps')
public mapObj?: MapsComponent;
public shapeData: object = world_map;
public selectionSettings: object = {
enable: true,
fill: 'green',
border: { color: 'white', width: 2 }
};
select(){
this.mapObj?.shapeSelection(0, "continent", "Asia", true);
};
unselect(){
this.mapObj?.shapeSelection(0, "continent", "Asia", false);
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
Initial shape selection
The shape is initially selected using the initialShapeSelection
, and the values are mapped to the shapePath
and shapeValue
.
initialShapeSelection is an Array property.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule } from '@syncfusion/ej2-angular-maps'
import { SelectionService } from '@syncfusion/ej2-angular-maps'
import { Component, OnInit } from '@angular/core';
import { world_map } from './world-map';
@Component({
imports: [
MapsModule
],
providers: [SelectionService],
standalone: true,
selector: 'app-container',
template:
`<ejs-maps id='rn-container' >
<e-layers>
<e-layer [shapeData]= 'shapeData' [initialShapeSelection] = 'initialShapeSelection' [selectionSettings] ='selectionSettings'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public shapeData?: object;
public initialShapeSelection?: object;
public selectionSettings?: object;
ngOnInit(): void {
this.shapeData = world_map;
this.initialShapeSelection = [
{ shapePath: 'continent', shapeValue: 'Africa' },
{ shapePath: 'name', shapeValue: 'India' }
];
this.selectionSettings = {
enable: true,
fill: 'green',
border: { color: 'white', width: 2 }
}
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
Initial marker selection
Using the initialMarkerSelection
, the marker shape can be selected initially. Markers render based on the latitude
and longitude
values.
Note: initialMarkerSelection is an Array property.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule } from '@syncfusion/ej2-angular-maps'
import { MarkerService, SelectionService } from '@syncfusion/ej2-angular-maps'
import { Component, OnInit } from '@angular/core';
import { world_map } from './world-map';
@Component({
imports: [
MapsModule
],
providers: [MarkerService, SelectionService],
standalone: true,
selector: 'app-container',
template:
`<ejs-maps id='rn-container'>
<e-layers>
<e-layer [shapeData]= 'shapeData' [markerSettings] = 'markerSettings'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public shapeData?: object;
public markerSettings?: object;
ngOnInit(): void {
this.shapeData = world_map;
this.markerSettings = [{
visible: true,
height: 20,
width: 20,
fill: 'green',
shape:'Balloon',
initialMarkerSelection: [{
latitude: -6.64607562172573, longitude: -55.54687499999999
}],
selectionSettings: {
enable: true,
fill: 'blue',
opacity: 1,
border: { color: 'white', width: 2, opacity: 1 }
},
dataSource: [
{ latitude: 49.95121990866204, longitude: 18.468749999999998, name:'Europe' },
{ latitude: 59.88893689676585, longitude: -109.3359375, name:'North America'},
{ latitude: -6.64607562172573, longitude: -55.54687499999999, name:'South America'}
]
}];
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
Highlight
Each shape in the Maps can be highlighted during mouse hover on the Maps elements such as shapes, bubbles, markers and legends. Highlight is enabled by setting the enable
property of highlightSettings
to true.
The following properties are available to customize the highlight of Maps elements such as shapes, bubbles, markers and legends.
-
border
- To customize the color, width and opacity of the border of which element is highlighted in Maps. -
fill
- Applies the color for the element that is highlighted. -
opacity
- To customize the transparency for the element that is highlighted.
Hovering on the specific legend, the shapes which are bounded to the selected legend is also highlighted and vice versa.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule } from '@syncfusion/ej2-angular-maps'
import { LegendService, HighlightService } from '@syncfusion/ej2-angular-maps'
import { Component, OnInit } from '@angular/core';
import { world_map } from './world-map';
@Component({
imports: [
MapsModule
],
providers: [LegendService, HighlightService],
standalone: true,
selector: 'app-container',
template:
`<ejs-maps id='rn-container' [legendSettings]='legendSettings'>
<e-layers>
<e-layer [shapeData] = 'shapeData' [shapePropertyPath]='shapePropertyPath' [shapeDataPath]='shapeDataPath' [dataSource]='dataSource' [shapeSettings]='shapeSettings' [highlightSettings] ='highlightSettings'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public highlightSettings?: object;
public shapeData?: object;
public shapePropertyPath?: string;
public shapeDataPath?: string;
public dataSource?: object;
public shapeSettings?: object;
public legendSettings?: object;
ngOnInit(): void {
this.highlightSettings = {
enable: true,
fill: 'green',
border: { color: 'white', width: 2}
}
this.shapeData = world_map;
this.shapePropertyPath= "name";
this.shapeDataPath = "Country";
this.dataSource = [
{ "Country": "China", "Membership": "Permanent"},
{ "Country": "France","Membership": "Permanent" },
{ "Country": "Russia","Membership": "Permanent"},
{ "Country": "Kazakhstan","Membership": "Non-Permanent"},
{ "Country": "Poland","Membership": "Non-Permanent"},
{ "Country": "Sweden","Membership": "Non-Permanent"}
];
this.shapeSettings = {
colorValuePath: 'Membership',
colorMapping: [
{
value: 'Permanent', color: '#D84444'
},
{
value: 'Non-Permanent', color: '#316DB5'
}]
};
this.legendSettings= {
visible: true
}
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
Enable highlight for bubbles
To enable the highlight for bubbles in Maps, set the highlightSettings
in bubbleSettings
and set the enable
property of highlightSettings
as true.
To use the bubble feature, the Bubble module must be injected.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule } from '@syncfusion/ej2-angular-maps'
import { BubbleService, HighlightService } from '@syncfusion/ej2-angular-maps'
import { Component, OnInit } from '@angular/core';
import { world_map } from './world-map';
@Component({
imports: [
MapsModule
],
providers: [BubbleService, HighlightService],
standalone: true,
selector: 'app-container',
template:
`<ejs-maps id='rn-container'>
<e-layers>
<e-layer [shapeData]= 'shapeData' [bubbleSettings] = 'bubbleSettings'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public shapeData?: object;
public shapeDataPath?: object | any;
public shapePropertyPath?: object | any;
public bubbleSettings?: object;
ngOnInit(): void {
this.shapeData = world_map;
this.shapeDataPath = 'name',
this.shapePropertyPath = 'name',
this.bubbleSettings = [{
visible: true,
dataSource: [
{ name: 'India', population: '38332521' },
{ name: 'South Africa', population: '19651127' },
{ name: 'Pakistan', population: '3090416' }
],
highlightSettings: {
enable: true,
fill: 'green',
border: { color: 'white', width: 2}
},
valuePath: 'population'
}]
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
Enable highlight for markers
To enable the highlight for markers in Maps, set the highlightSettings
in markerSettings
and set the enable
property of highlightSettings
as true.
Note: To use the marker feature, the Marker module must be injected.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule } from '@syncfusion/ej2-angular-maps'
import { MarkerService, HighlightService } from '@syncfusion/ej2-angular-maps'
import { Component, OnInit } from '@angular/core';
import { world_map } from './world-map';
@Component({
imports: [
MapsModule
],
providers: [MarkerService, HighlightService],
standalone: true,
selector: 'app-container',
template:
`<ejs-maps id='rn-container'>
<e-layers>
<e-layer [shapeData]= 'shapeData' [markerSettings] = 'markerSettings'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public shapeData?: object;
public markerSettings?: object;
ngOnInit(): void {
this.shapeData = world_map;
this.markerSettings = [{
visible: true,
height: 20,
width: 20,
fill: 'green',
shape:'Balloon',
highlightSettings: {
enable: true,
fill: 'blue',
border: { color: 'white', width: 2}
},
dataSource: [
{ latitude: 49.95121990866204, longitude: 18.468749999999998, name:'Europe' },
{ latitude: 59.88893689676585, longitude: -109.3359375, name:'North America'},
{ latitude: -6.64607562172573, longitude: -55.54687499999999, name:'South America'}
]
}];
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
Enable highlight for polygons
The polygon shapes can be highlighted via user interaction if the enable property of highlightSettings is set to true. The following properties are available in highlightSettings
to customize the polygon shape when it is highlighted.
- fill - It is used to change the color of the highlighted polygon shape.
- opacity - It is used to change the opacity of the highlighted polygon shape.
- border - This property is used to change the color, width, and opacity of the border of the highlighted polygon shape.
To use the polygon feature, the Polygon module must be injected, as described in this link.
The following example shows how to highlight a polygon shape on a geometry map.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule, PolygonService, SelectionService, HighlightService } from '@syncfusion/ej2-angular-maps'
import { Component, ViewEncapsulation, OnInit } from '@angular/core';
import { world_map } from './world-map';
@Component({
imports: [
MapsModule
],
providers: [PolygonService, SelectionService, HighlightService],
standalone: true,
selector: 'app-container',
template: `<div class="control-section">
<div align='center'>
<ejs-maps id='container' style="display:block;">
<e-layers>
<e-layer [shapeData]='shapeData' [polygonSettings]='polygonSettings'></e-layer>
</e-layers>
</ejs-maps>
</div>
</div>`,
encapsulation: ViewEncapsulation.None,
})
export class AppComponent implements OnInit {
public shapeData?: object;
public polygonSettings?: object;
ngOnInit(): void {
this.polygonSettings = {
polygons: [
{
points: [
{ longitude: -1.8920678947185365, latitude: 35.06195799239681 },
{ longitude: -1.6479633699113947, latitude: 33.58989612266137 },
{ longitude: -1.4201220366858252, latitude: 32.819439646045254 },
{ longitude: -1.197974596225663, latitude: 32.26940895444655 },
{ longitude: -2.891112397949655, latitude: 32.10303058820031 },
{ longitude: -3.8246984550501963, latitude: 31.34551662687602 },
{ longitude: -3.720166273688733, latitude: 30.758086682848685 },
{ longitude: -5.6571886081189575, latitude: 29.613582597203006 },
{ longitude: -7.423353242214745, latitude: 29.44328441403087 },
{ longitude: -8.6048931685323, latitude: 28.761444633616776 },
{ longitude: -8.695726975465703, latitude: 27.353491085576195 },
{ longitude: 3.837867279970908, latitude: 19.15916564839422 },
{ longitude: 6.0705408799045415, latitude: 19.48749097192868 },
{ longitude: 12.055736352807713, latitude: 23.694596786078293 },
{ longitude: 11.272522332402986, latitude: 24.289329186946034 },
{ longitude: 10.30872578261932, latitude: 24.65419958524693 },
{ longitude: 9.910236690050027, latitude: 25.48943950947175 },
{ longitude: 9.432639882414293, latitude: 26.398372489836902 },
{ longitude: 9.898266456582292, latitude: 26.73489453809293 },
{ longitude: 9.560243026853641, latitude: 30.31040379467153 },
{ longitude: 8.943853847283322, latitude: 32.350324876652195 },
{ longitude: 7.57004059025715, latitude: 33.75071049019398 },
{ longitude: 8.0906322609153, latitude: 34.69043151009983 },
{ longitude: 8.363285449347273, latitude: 35.38654406371319 },
{ longitude: 8.26139549449448, latitude: 36.44751078733985 },
{ longitude: 8.61100824823302, latitude: 36.881913362940196 },
{ longitude: 7.4216488925819135, latitude: 37.021408008916254 },
{ longitude: 6.461182254165351, latitude: 36.99092409199429 },
{ longitude: 5.297178918070159, latitude: 36.69985479014656 },
{ longitude: 3.6718056161224695, latitude: 36.86470546831693 },
{ longitude: 1.2050052555659931, latitude: 36.57658056301722 },
{ longitude: -0.26968570003779746, latitude: 35.806903541813625 },
{ longitude: -0.995191786435754, latitude: 35.58466127904214 },
{ longitude: -1.8920678947185365, latitude: 35.06195799239681 }
],
fill: 'red',
opacity: 0.7,
borderColor: 'green',
borderWidth: 2,
borderOpacity: 0.7
}
],
highlightSettings: {
enable: true,
fill: 'yellow',
opacity: 0.4,
border: {
color: 'blue',
opacity: 0.6,
width: 4
}
},
selectionSettings: {
enable: true,
fill: 'red',
opacity: 0.7,
border: {
color: 'green',
width: 2,
opacity: 0.7
}
}
};
this.shapeData = world_map;
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
Tooltip
On mouse over or touch end event, the tooltip is used to get more information about the layer, bubble, or marker. To enable tooltip in Maps, the Tooltip module must be injected into Maps using Maps.Inject(Tooltip) method. It can be enabled separately for layer or bubble or marker by using the visible
property of tooltipSettings
as true. The valuePath
property in the tooltip takes the field name that presents in data source and displays that value as tooltip text. The tooltipDisplayMode
property is used to change the display mode of the tooltip in Maps. Following display modes of tooltip are available in the Maps component. By default, tooltipDisplayMode
is set to MouseMove.
- MouseMove
- Click
- DoubleClick
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule } from '@syncfusion/ej2-angular-maps'
import { MapsTooltipService } from '@syncfusion/ej2-angular-maps'
import { Component, OnInit } from '@angular/core';
import { world_map } from './world-map';
@Component({
imports: [
MapsModule
],
providers: [MapsTooltipService],
standalone: true,
selector: 'app-container',
template:
`<ejs-maps id='rn-container'>
<e-layers>
<e-layer [shapeData] = 'shapeData' [tooltipSettings] ='tooltipSettings'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public tooltipSettings?: object;
public shapeData?: object;
ngOnInit(): void {
this.tooltipSettings ={
visible: true,
valuePath: 'name'
}
this.shapeData = world_map;
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
app.module.ts
Injecting MapsTooltipService into NgModule.
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
// import the MapsModule for the Maps component
import { MapsModule, MapsTooltipService} from '@syncfusion/ej2-angular-maps';
import { AppComponent } from './app.component';
@NgModule({
// declaration of ej2-angular-maps module into NgModule
imports: [ BrowserModule, MapsModule ],
declarations: [ AppComponent ],
providers: [MapsTooltipService],
bootstrap: [ AppComponent ]
})
export class AppModule { }
Customization
The following properties are available to customize the tooltip of the Maps component.
-
border
- To customize the color, width and opacity of the border of the tooltip in layers, markers, and bubbles of Maps. -
fill
- Applies the color of the tooltip in layers, markers, and bubbles of Maps. -
format
- To customize the format of the tooltip in layers, markers, and bubbles of Maps -
textStyle
- To customize the style of the text in the tooltip for layers, markers, and bubbles of Maps.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule } from '@syncfusion/ej2-angular-maps'
import { MapsTooltipService } from '@syncfusion/ej2-angular-maps'
import { Component, OnInit } from '@angular/core';
import { world_map } from './world-map';
@Component({
imports: [
MapsModule
],
providers: [MapsTooltipService],
standalone: true,
selector: 'app-container',
template:
`<ejs-maps id='rn-container'>
<e-layers>
<e-layer [shapeData] = 'shapeData' [tooltipSettings] ='tooltipSettings'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public tooltipSettings?: object;
public shapeData?: object;
ngOnInit(): void {
this.tooltipSettings ={
visible: true,
valuePath: 'name',
fill: '#D0D0D0',
textStyle: {
color: 'green',
fontFamily: 'Times New Roman',
fontStyle: 'Sans-serif'
}
}
this.shapeData = world_map;
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
Tooltip template
The HTML element can be rendered in the tooltip of the Maps using the template
property of the tooltipSettings
.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule } from '@syncfusion/ej2-angular-maps'
import { MapsTooltipService } from '@syncfusion/ej2-angular-maps'
import { Component } from '@angular/core';
import { ShapeSettings } from '@syncfusion/ej2-angular-maps';
import { world_map } from './world-map';
import { default_data } from './data';
@Component({
imports: [
MapsModule
],
providers: [MapsTooltipService],
standalone: true,
selector: 'app-container',
template: `<ejs-maps id='rn-container'>
<e-layers>
<e-layer [shapeData] ='shapeData' [shapePropertyPath]='shapePropertyPath' [shapeDataPath]='shapeDataPath' [dataSource]='dataSource' [shapeSettings]='shapeSettings' [tooltipSettings] ='tooltipSettings'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent {
public tooltipSettings: object ={
visible: true,
valuePath: 'continent',
template: '<div style="width:60px; text-align:center; background-color: white; border: 2px solid black; padding-bottom: 10px;padding-top: 10px;padding-left: 10px;padding-right: 10px;"><span>${continent}</span></div>',
textStyle: {
color: 'black'
}
}
public shapePropertyPath: string = "continent";
public shapeDataPath: string = "continent";
public dataSource: object = default_data;
public shapeData: object = world_map;
public shapeSettings?: ShapeSettings;
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));
Changing duration in mobile devices
To change the duration of the tooltips in mobile devices, you can use the duration
property in tooltipSettings. By default, this property is set to 2000 milliseconds. Setting the value to 0 will keep the tooltip visible indefinitely. If it is greater than 0, the tooltip will be removed after the specified time.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MapsModule } from '@syncfusion/ej2-angular-maps'
import { MapsTooltipService } from '@syncfusion/ej2-angular-maps'
import { Component, OnInit } from '@angular/core';
import { world_map } from './world-map';
@Component({
imports: [
MapsModule
],
providers: [MapsTooltipService],
standalone: true,
selector: 'app-container',
template:
`<ejs-maps id='rn-container'>
<e-layers>
<e-layer [shapeData] = 'shapeData' [tooltipSettings] ='tooltipSettings'></e-layer>
</e-layers>
</ejs-maps>`
})
export class AppComponent implements OnInit {
public tooltipSettings?: object;
public shapeData?: object;
ngOnInit(): void {
this.tooltipSettings ={
visible: true,
valuePath: 'name',
fill: '#D0D0D0',
textStyle: {
color: 'green',
fontFamily: 'Times New Roman',
fontStyle: 'Sans-serif'
},
duration: 3000
}
this.shapeData = world_map;
}
}
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));