React Map - Handle the Related Events
The Map UI component fires the routeAdded and routeRemoved events when a marker is added or removed. To handle them, assign functions to the onRouteAdded and onRouteRemoved properties, respectively.
jQuery
JavaScript
$(function() { $("#mapContainer").dxMap({ center: { lat: 40.749825, lng: -73.987963 }, zoom: 10, onRouteAdded: function (e) { const addedRoute = e.options; // The original route used by the current map provider const originalRoute = e.originalRoute; // Event handling commands go here }, onRouteRemoved: function (e) { const removedRoute = e.options; // Event handling commands go here } }); });
Angular
HTML
TypeScript
<dx-map [center]="{ lat: 40.749825, lng: -73.987963 }" [zoom]="10" (onRouteAdded)="routeAdded($event)" (onRouteRemoved)="routeRemoved($event)"> </dx-map>
import { DxMapModule } from "devextreme-angular"; // ... export class AppComponent { routeAdded (e) { const addedRoute = e.options; // The original route used by the current map provider const originalRoute = e.originalRoute; // Event handling commands go here }; routeRemoved (e) { const removedRoute = e.options; // Event handling commands go here } } @NgModule({ imports: [ // ... DxMapModule ], // ... })
Vue
<template> <DxMap :zoom="10" :center="centerCoordinates" @route-added="routeAdded" @route-removed="routeRemoved" /> </template> <script> import 'devextreme/dist/css/dx.light.css'; import { DxMap } from 'devextreme-vue/map'; export default { components: { DxMap }, data() { return { centerCoordinates: { lat: 40.749825, lng: -73.987963 } }; }, methods: { routeAdded(e) { const addedRoute = e.options; // The original route used by the current map provider const originalRoute = e.originalRoute; // Event handling commands go here }, routeRemoved(e) { const removedRoute = e.options; // Event handling commands go here } } } </script>
React
import React from 'react'; import 'devextreme/dist/css/dx.light.css'; import { Map } from 'devextreme-react/map'; const centerCoordinates = { lat: 40.749825, lng: -73.987963 }; class App extends React.Component { constructor(props) { super(props); this.routeRemoved = this.routeAdded.bind(this); this.routeRemoved = this.routeRemoved.bind(this); } routeAdded(e) { const addedRoute = e.options; // The original route used by the current map provider const originalRoute = e.originalRoute; // Event handling commands go here } routeRemoved(e) { const removedRoute = e.options; // Event handling commands go here } render() { return ( <Map defaultZoom={10} defaultCenter={centerCoordinates} onRouteAdded={this.routeAdded} onRouteRemoved={this.routeRemoved} /> ); } } export default App;
If you are going to change event handlers at runtime, or if you need to attach several handlers to a single event, subscribe to the markerAdded and markerRemoved events using the on(eventName, eventHandler) method. This approach is more typical of jQuery.
JavaScript
const routeRemovedHandler1 = function (e) { const removedRoute = e.options; // First handler of the "routeRemoved" event }; const routeRemovedHandler2 = function (e) { const removedRoute = e.options; // Second handler of the "routeRemoved" event }; $("#mapContainer").dxMap("instance") .on("routeRemoved", routeRemovedHandler1) .on("routeRemoved", routeRemovedHandler2);
See Also
Feel free to share topic-related thoughts here.
If you have technical questions, please create a support ticket in the DevExpress Support Center.
Thank you for the feedback!
If you have technical questions, please create a support ticket in the DevExpress Support Center.