如何在FICO Xpress Workbench中使用SVG显示图像

问题描述

我正在努力生成表示图形的SVG图像。对于每个节点,我想显示一个图像。如文档中所述,要使用图像,我需要使用svgaddfilesvgaddimage

我写了这段代码(我只复制了有趣的行)

 svgsetgraphviewBox(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,20,20)

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

我得到以下图像:

result

图片为512x512。我究竟做错了什么? Tnx

解决方法

从Workbench运行时,如果在'svgwaitclose'中使用选项'1',则上载图形文件时似乎存在时序问题(此选项表示由mmsvg运行的基础HTTP服务器已停止SVG文件上传后立即生效)。 您可以使用以下表单:

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

或在此语句之前添加一点延迟:

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