我正在与Processing
合作,尝试为美国健康保险的人数开发一个简单的数据可视化应用程序。
我的草图在我的机器上本地工作,但我尝试使用处理IDE中提供的Javascript模式将其导出到Web。
生成一个文件夹,其中包含许多文件,包括HTML页面和草图的JS文件。但是,当我尝试从LocalHost
Uncaught Processing.js: Unable to execute pjs sketch: ReferenceError: ListstateMarkers is not defined
我的Sketch(用Java)的完整代码在这里:
UnfoldingMap map;
List<Marker>stateMarkers;
List<Feature>states;
void setup() {
size(800, 600);
smooth();
map = new UnfoldingMap(this);
MapUtils.createDefaultEventDispatcher(this, map);
states = GeoJSONReader.loadData(this, "ushealthinsurance2005.json");
stateMarkers = MapUtils.createSimpleMarkers(states);
stateMarkers = MapUtils.createSimpleMarkers(states);
map.addMarkers(stateMarkers);
}
void draw() {
map.draw();
for (int i = 0; i < stateMarkers.size(); i++) {
Marker state = stateMarkers.get(i);
//Get information when mouse over a county.
if (state.isInside(map, mouseX, mouseY)) {
state.setColor(color(255, 0, 0));
}
else {
state.setColor(color(0, 0, 255));
}
}
}
我应该指出我也在使用地图库Unfolding
来生成地图图块并为应用程序添加交互性。
有没有人知道这里会发生什么?这是IDE本身的故障吗?有没有人遇到过类似的问题?
从JS文件中抛出错误的行就是这一行:
throw "Processing.js: Unable to execute pjs sketch: " + e;
生成的代码超过10,000行,这使得实际调试问题非常困难。
感谢有关此问题的任何建议或帮助。
答案 0 :(得分:0)
您不能在JavaScript中使用Java库,因此您无法在Processing.js中使用它们。
您有三种选择:
选项1:查找执行相同操作的JavaScript库。不幸的是,Unfolding Maps does not support JavaScript,所以你必须使用别的东西。 GoogleMaps API可能值得一试。 如果您想将自己的应用程序嵌入网站,这是唯一真正的选择。
选项2:部署为可运行的jar。您可以使用JarMatey之类的东西(注意:我编写了JarMatey)将Processing sketch打包为一个自解压的可运行jar。您无法将其嵌入网页,但可以使用Java Web Start更轻松地在网络上进行部署。
选项3:部署为打包的可执行文件。处理可以导出应用程序,但它们需要库目录而不是作为单个文件。相反,您可以创建一个可运行的jar,然后使用JWrapper之类的东西来创建单个文件的可执行文件。
注意:部署为applet并不是一个真正的选择。小程序已经死了,它们对你和你的用户来说都是一个巨大的痛苦。 Applet将在Java 9中弃用。