我是基于gis的新项目。我正在使用netbeans IDE来包含我的shapefile,我确信我已经导入了必要的jar来包含shapefile。但它没有工作。当我运行我的应用程序时,我在simplefeaturesource方法中得到一个空指针异常。特此我加入我的程序
public class Quickstart {
/**
* GeoTools Quickstart demo application. Prompts the user for a shapefile and displays its
* contents on the screen in a map frame
*/
public static void main(String[] args) throws Exception {
// display a data store file chooser dialog for shapefiles
File file = JFileDataStoreChooser.showOpenFile("shp", null);
if (file == null) {
return;
}
FileDataStore store = FileDataStoreFinder.getDataStore(file);
SimpleFeatureSource featureSource = store.getFeatureSource();
// Create a map content and add our shapefile to it
MapContent map = new MapContent();
map.setTitle("Quickstart");
Style style = SLD.createSimpleStyle(featureSource.getSchema());
Layer layer = new FeatureLayer(featureSource, style);
map.addLayer(layer);
// Now display the map
JMapFrame.showMap(map);
}
}
答案 0 :(得分:0)
根据function or method definition I have found:
public static FileDataStore getDataStore(File file) throws IOException
依次检查每个可用的数据源实现并返回声称支持给定文件的第一个...
参数:
- file - 文件
返回:
声称处理所需资源的第一个数据源,如果找不到则返回null。
现在,在失败的实例中,它将返回null,在这种情况下,store将在上面的代码中等于null。由于不使用if语句检查存储,以确定它是否为null,只是声明并初始化并且您只希望获得最佳效果,然后下一行产生空指针异常。
这是我对你的代码的看法。尝试并调试它,看看store是否为null,或者在之前的行上使用if语句。