我正在使用Processing 2.1,这是一种基于Java构建的语言,允许创建可视化。目前,我正在尝试阅读geoJSON文件并在地图上显示此信息。
我在Processing.org网站提供的IDE中进行编码。它在某种意义上是非常原始的,因为它没有调试代码的能力。它会返回错误但我不能进入我的代码来找出我的问题。
我目前收到此错误:NullPointerException
就是这样,我被告知没有别的东西阻止它出现在那条线上。
List<Feature> counties = GeoJSONReader.loadData(this, "ireland.geo.json");
我不明白为什么我会得到它。我试图读取的文件存在。有谁可以帮我解决这个问题?
以下是我的完整代码:
UnfoldingMap map;
List<Marker>countyMarkers;
List<Marker>countyMarkers2;
color c1 = color(204, 153, 0);
void setup() {
size(800, 600);
smooth();
//Map
map = new UnfoldingMap(this);
MapUtils.createDefaultEventDispatcher(this, map);
List<Feature> counties = GeoJSONReader.loadData(this, "ireland.geo.json");
countyMarkers = MapUtils.createSimpleMarkers(counties);
map.addMarkers(countyMarkers);
}
void draw() {
map.draw();
for (int i = 0; i < countyMarkers.size(); i++) {
Marker county = countyMarkers.get(i);
county.setColor(c1);
if (county.isInside(map, mouseX, mouseY)) {
county.draw(map);
HashMap countyProps = county.getProperties();
String countyName = countyProps.get("city").toString();
println(countyName);
}
}
}
答案 0 :(得分:1)
在此展开开发者。
这是因为我们的JSON解析器只处理Geo JSON规范的基础知识。 (见http://unfoldingmaps.org/tutorials/markers-data-geojson.html)
你可以通过使用Processing的loadJSONArray和loadJSONObject方法自己实现解析来解决这个问题。
附录:虽然你没有提供你的json文件,但是我发现了一个用于爱尔兰的县,这可能是因为该文件中的空属性。请试用这个版本的Unfolding,它现在处理这个而不会抛出NPE。 https://dl.dropboxusercontent.com/u/599609/Unfolding_for_processing_0.9.5.1.zip 如果这不是原因,请提供您的JSON文件,以便我查看。