В движке mxgraph я нашел event мыши, но он не отражает реальную координату карты. Вот пример кода, в котором evt мне не подходит. Нужно иное решение. Требуется получить координату карты. Проверить это можно получением отрицательных координат (наверное).
В общем виде задача выглядит следующим образом: пользователь выбирает категорию объектов, ему отображается модальное окно с доступными SVG иконками для размещения. После клика SVG иконка размещается в место где кликнет пользователь. Я знаю, что есть возможность стандартного Drag&Drop в MxGraph, но нам он не подходит из-за специфики проекта. Нам нужно по клику мыши на карту размещать новый элемент в назначенные X, Y координаты мыши на карте.
В коде ниже представлены координаты, которые мы нашли в MxGraph, но они не позволяют нам размещать объект по клику.
this.graph.addListener(MxEvent.CLICK, function(sender, evt)){
console.log('evtOffsetX: ', evt.properties.event.offsetX)
console.log('evtOffsetY: ', evt.properties.event.offsetY)
}
this.graph.getSelectionModel().addListener(MxEvent.CHANGE, function(vertex)){
console.log('vertexCenterX: ', vertex.cells[0].geometry.getCenterX());
console.log('vertexCenterY: ', vertex.cells[0].geometry.getCenterY());
console.log('vertexHeight: ', vertex.cells[0].geometry.height);
console.log('vertexWidth: ', vertex.cells[0].geometry.width);
console.log('vertexX: ', vertex.cells[0].geometry.x);
console.log('vertexY: ', vertex.cells[0].geometry.y);
}