有人知道Java中有一个可以解析ESRI形状文件的库吗?
我感兴趣的是为道路数据编写一个可视化程序。我想绘制线条数据来显示我所在县的所有道路 ESRI形状文件或简单的 shapefile是一种流行的地理空间文件 地理信息的矢量数据格式 信息系统软件。它是 由ESRI作为 (主要是)数据的开放规范 ESRI与其他应用程序之间的互操作性 软件产品。“形状文件” 通常指的是 包含“.shp”、“.shx”、“.dbf”和 通用前缀上的其他扩展 名称(例如,“lakes.*”)。实际的 shapefile专门与 扩展名为“.shp”的文件, 但是,仅此文件是不完整的 为了分配,就像另一个一样 支持文件是必需的 有人知道用于解析和读取行内数据的现有库吗?有,或者更确切地说,这个类。有一个提供对ESRI文件的读写访问权限的库。可以。有很多罐子,你不需要它们中的大部分。然而,读取shapefile只是几行有人知道Java中有一个可以解析ESRI形状文件的库吗?,java,shapefile,geotools,Java,Shapefile,Geotools,我感兴趣的是为道路数据编写一个可视化程序。我想绘制线条数据来显示我所在县的所有道路 ESRI形状文件或简单的 shapefile是一种流行的地理空间文件 地理信息的矢量数据格式 信息系统软件。它是 由ESRI作为 (主要是)数据的开放规范 ESRI与其他应用程序之间的互操作性 软件产品。“形状文件” 通常指的是 包含“.shp”、“.shx”、“.dbf”和 通用前缀上的其他扩展 名称(例如,“lakes.*”)。实际的 shapefile专门与 扩展名为“.shp”的文件, 但是,仅此文件是不
File file = new File("mayshapefile.shp");
try {
Map<String, String> connect = new HashMap();
connect.put("url", file.toURI().toString());
DataStore dataStore = DataStoreFinder.getDataStore(connect);
String[] typeNames = dataStore.getTypeNames();
String typeName = typeNames[0];
System.out.println("Reading content " + typeName);
FeatureSource featureSource = dataStore.getFeatureSource(typeName);
FeatureCollection collection = featureSource.getFeatures();
FeatureIterator iterator = collection.features();
try {
while (iterator.hasNext()) {
Feature feature = iterator.next();
GeometryAttribute sourceGeometry = feature.getDefaultGeometryProperty();
}
} finally {
iterator.close();
}
} catch (Throwable e) {}
File File=new文件(“mayshapefile.shp”);
试一试{
Map connect=new HashMap();
connect.put(“url”,file.toURI().toString());
DataStore DataStore=DataStoreFinder.getDataStore(connect);
String[]typeNames=dataStore.getTypeNames();
字符串typeName=typeNames[0];
System.out.println(“读取内容”+类型名);
FeatureSource FeatureSource=数据存储。getFeatureSource(typeName);
FeatureCollection集合=featureSource.getFeatures();
FeatureIterator迭代器=collection.features();
试一试{
while(iterator.hasNext()){
Feature=iterator.next();
GeometryAttribute sourceGeometry=feature.getDefaultGeometryProperty();
}
}最后{
iterator.close();
}
}捕获(可丢弃的e){}
您可以尝试使用库。它体积小,易于安装,并且具有非常简单的API。
唯一的缺点是它不读取形状文件通常附带的其他强制性和可选文件(.shx、.dbf等)。您可以直接使用GUI GIS工具,这样就不需要更改GeoTools的源代码 我使用QGIS进行所有操作(甚至比GeoTools更多)
-用于编辑、合并和简化shapefile地图的开源地理信息系统。另请参见:使用Quantum GIS创建具有多个图层的地图。如果使用Maven编译程序,它将为您处理所有JAR。Geotools提供了关于如何开始开发的精彩教程。这是一个用于可视化地图的Swing应用程序。这个示例非常好,省去了我深入了解API文档的时间。虽然BBN的OpenMap是开源的,但它使用了一个奇怪的BBN特定许可证。这是非常允许的,但它不是标准许可证这一事实可能会在尝试将其与其他软件结合时(或在尝试获得您的合法beagles的批准时)引起问题。您能否提供一个如何使用所述API读取ESRI文件的示例?OpenMap的API是不透明的,我完全搞不懂。你知道有没有其他适合这种情况的小型易用库-reading.shx和.dbf?