0

我正在Processing尝试为美国拥有健康保险的人数开发一个简单的数据可视化应用程序。

我的草图在我的机器上本地工作,但我尝试使用处理 IDE 中可用的 Javascript 模式将其导出到网络。

将生成一个文件夹,其中包含许多文件,包括 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 行,因此很难实际调试问题。

感谢有关此问题的任何建议或帮助。

4

1 回答 1

0

你不能在 JavaScript 中使用 Java 库,所以你不能在 Processing.js 中使用它们。

你有三个选择:

选项 1:找到一个做同样事情的 JavaScript 库。不幸的是,Unfolding Maps 不支持 JavaScript,所以你必须使用其他东西。GoogleMaps API 可能值得一试。如果您想将应用程序嵌入网站,这是唯一真正的选择。

选项 2:部署为可运行的 jar。您可以使用JarMatey(注意:我写了 JarMatey)之类的东西将您的处理草图打包为一个自解压的可运行 jar。您将无法将其嵌入网页中,但您可以使用Java Web Start来简化在 Web 上的部署。

选项 3:部署为打包的可执行文件。处理可以导出应用程序,但它们需要库目录而不是作为单个文件出现。相反,您可以创建一个可运行的 jar,然后使用JWrapper 之类的东西来创建一个单文件可执行文件。

注意:部署为小程序并不是一个真正的选择。小程序几乎已经死了,它们对你和你的用户来说都是一个巨大的痛苦。小程序将在 Java 9 中被弃用。

于 2016-03-10T16:52:07.877 回答