How to display an image with SVG in FICO Xpress Workbench

111 Views Asked by At

I'm working to generate an SVG image to represent a graph. For each node, I would like to display an image. As written in the documentation, to use an image, I need to use svgaddfile and svgaddimage.

I wrote this code (I copy only the interesting lines)

 svgsetgraphviewbox(0, 0,max(i in V_zero_n_plus_one)X(i)+10, max(i in V_zero_n_plus_one)Y(i)+10)
 svgsetgraphscale(5)
 svgsetgraphpointsize(5)

 svgaddgroup("Customers", "Customers", SVG_BLACK)

 svgaddgroup("Depot", "Depot", SVG_BROWN)
 svgaddpoint(X(0), Y(0))
 svgaddtext(X(0)+0.5, Y(0)-0.5, "Depot")

 svgaddfile("./city2.jpg", "city.png")
 svgaddimage("city.png", X(0)+0.5, Y(0)-0.5, 20, 20)

 svgaddgroup("Routes", "Delivery routes")
 
svgsave("vrp.svg")
 svgrefresh
 svgwaitclose("Close browser window to terminate model execution.", 1)

I obtain the following image: result

The image is 512x512. What am I doing wrong? Tnx

1

There are 1 best solutions below

0
On BEST ANSWER

There seems to be a timing issue for the uploading of the graphic file when you are using the option '1' in 'svgwaitclose' when running from Workbench (this option means that the underlying HTTP server that is run by mmsvg is stopped immediately once the SVG file has been uploaded). You could either work with this form:

svgwaitclose("Close browser window to terminate model execution.")   ! NB: the second argument defaults to value 0

or add a small delay before this statement:

sleep(2000)       ! Wait for 2 seconds
svgwaitclose("Close browser window to terminate model execution.", 1)