有谁知道可以parsingESRI Shapefile的Java库吗?

我有兴趣为2009年Tiger / Line Shapefiles中的道路数据编写可视化程序。 我想画线数据来显示我县的所有道路。

ESRI Shapefile或简单的shapefile是地理信息系统软件常用的地理空间vector数据格式。 它是由ESRI开发和监pipe的,作为ESRI和其他软件产品之间数据互操作性的一个(大部分)开放规范。 1 “shapefile”通常是指带有“.shp”,“.shx”,“.dbf”以及其他常用前缀名称(例如“lakes。*”)的扩展名的文件集合。 实际的shapefile特别与带有“.shp”扩展名的文件相关,但是这个文件本身对于分发是不完整的,因为其他支持文件是必需的。

有谁知道现有的库parsing和阅读Shapefiles行数据?

GeoTools将做到这一点。 有很多jar子,你不需要它们中的大部分。 但是,阅读shapefile只是几行。

File file = new File("mayshapefile.shp"); try { Map connect = new HashMap(); connect.put("url", file.toURL()); 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(); Geometry sourceGeometry = feature.getDefaultGeometry(); } } finally { iterator.close(); } } catch (Throwable e) {} 

Openmap有一个Java API ,提供对ESRI文件的读写访问。

有GeoTools ,或者更确切地说是这个类ShapefileDataStore 。

您可以尝试使用Java ESRI Shape File Reader库。 它很小,易于安装,并具有非常简单的API。 唯一的缺点是它不会读取通常随形状文件附带的其他必需和可选文件(.shx,.dbf等)。

您可以直接使用GUI GIS工具,以便他们不需要更改GeoTools的源代码。

我使用QGIS,它比GeoTools执行所有操作(甚至更多)。

Quantum GIS – 开源的地理信息系统,用于编辑,合并和简化shapefile地图。 另请参阅:使用Quantum GIS创build具有多个图层的地图。