Skip to content

Commit cadd617

Browse files
committed
Allow transformations on SVG plotted points
1 parent 500abe5 commit cadd617

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

js/jquery.mapael.js

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1037,7 +1037,11 @@
10371037
elemOptions.attrs.height = elemOptions.height;
10381038
elemOptions.attrs.x = self.plots[id].mapElem.attrs.x - (elemOptions.width - self.plots[id].mapElem.attrs.width) / 2;
10391039
elemOptions.attrs.y = self.plots[id].mapElem.attrs.y - (elemOptions.height - self.plots[id].mapElem.attrs.height) / 2;
1040-
} else { // Default : circle
1040+
} else if (elemOptions.type == "svg") {
1041+
if (elemOptions.attrs.transform !== undefined) {
1042+
elemOptions.attrs.transform = self.plots[id].mapElem.baseTransform + elemOptions.attrs.transform;
1043+
}
1044+
}else { // Default : circle
10411045
elemOptions.attrs.r = elemOptions.size / 2;
10421046
}
10431047

@@ -1328,14 +1332,20 @@
13281332
).attr(elemOptions.attrs)
13291333
};
13301334
} else if (elemOptions.type == "svg") {
1331-
plot = {"mapElem": self.paper.path(elemOptions.path).attr(elemOptions.attrs)};
1335+
if (elemOptions.attrs.transform === undefined) {
1336+
elemOptions.attrs.transform = "";
1337+
}
1338+
1339+
plot = {"mapElem": self.paper.path(elemOptions.path)};
13321340
plot.mapElem.originalWidth = plot.mapElem.getBBox().width;
13331341
plot.mapElem.originalHeight = plot.mapElem.getBBox().height;
1334-
plot.mapElem.transform("m" + (elemOptions.width / plot.mapElem.originalWidth) + ",0,0," + (elemOptions.height / plot.mapElem.originalHeight) + "," + (coords.x - elemOptions.width / 2) + "," + (coords.y - elemOptions.height / 2));
1342+
1343+
plot.mapElem.baseTransform = "m" + (elemOptions.width / plot.mapElem.originalWidth) + ",0,0," + (elemOptions.height / plot.mapElem.originalHeight) + "," + (coords.x - elemOptions.width / 2) + "," + (coords.y - elemOptions.height / 2);
1344+
elemOptions.attrs.transform = plot.mapElem.baseTransform + elemOptions.attrs.transform;
1345+
plot.mapElem.attr(elemOptions.attrs);
13351346
} else { // Default = circle
13361347
plot = {"mapElem": self.paper.circle(coords.x, coords.y, elemOptions.size / 2).attr(elemOptions.attrs)};
13371348
}
1338-
13391349
self.initElem(plot, elemOptions, id);
13401350
return plot;
13411351
},

0 commit comments

Comments
 (0)