我有兴趣在2009 Tiger/Line Shapefiles中为道路数据编写可视化程序。我想绘制线数据来显示我县的所有道路。
ESRI Shapefile或简单地说 shapefile是一种流行的地理空间 地理的矢量数据格式 信息系统软件。它是 由ESRI开发和监管的 (主要)开放数据规范 ESRI与其他方面的互操作性 软件产品。1一个“shapefile” 通常指的是一个集合 带有“.shp”,“。shx”,“。dbf”和的文件 公共前缀上的其他扩展名 名称(例如,“lakes。*”)。实际上 shapefile具体涉及到 扩展名为“.shp”的文件, 但是这个文件本身并不完整 作为分配,作为另一个 支持文件是必需的。
是否有人知道用于解析和读取Shapefiles的行数据的现有库?
答案 0 :(得分:62)
GeoTools会这样做。有大量的罐子,你不需要大多数罐子。但是,读取shapefile只需几行。
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) {}
答案 1 :(得分:8)
答案 2 :(得分:5)
有GeoTools,或者更确切地说是此类ShapefileDataStore。
答案 3 :(得分:3)
您可以尝试使用Java ESRI Shape File Reader库。它体积小,易于安装,并且API非常简单。 唯一的缺点是它不会读取通常附带形状文件的其他强制和可选文件(.shx,.dbf等)。
答案 4 :(得分:0)
您可以直接使用GUI GIS工具,这样就无需更改GeoTools的源代码。
我使用QGIS来完成所有操作(甚至更多),而不是GeoTools。
Quantum GIS - 一个开源地理信息系统,用于编辑,合并和简化shapefile地图。另请参阅:使用Quantum GIS创建具有多个图层的地图。