ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:28.80KB ,
资源ID:16925078      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16925078.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Shapefile文件Word文档下载推荐.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Shapefile文件Word文档下载推荐.docx

1、public static void main(String args) try / 第一步:我们需要给出连接Shapefile文件的参数 / 并且把这些参数信息组织到一个Map实例中 URL url = new File(您的shapefile文件,以.shp结尾).toURI().toURL(); Map params = new HashMap(); params.put(url, url); / 还可以加入其他参数,这里以最简单的形式给出示例。 / 第二步:根据刚才参数的信息,打开一个连接到Shapefile文件的数据源 DataStore dataStore = DataStoreF

2、inder.getDataStore(params); / 从dataStore中获取Shapefile类型名称。 / Shapefile文件名称和Shapefile类型名称通常是一样的。 / 此处dataStore现在是基于Shapefile创建的, 所以TypeName就是Shapefile文件名称。 String typeName = dataStore.getTypeNames()0; System.out.println(:typeName is + typeName); / 第三步:根据Shapefile类型名称,从dataStore中获取的一个对象 FeatureSource f

3、eatureSource = dataStore.getFeatureSource(typeName); FeatureCollection featureCollection = featureSource.getFeatures(); / 该FeatureCollection类的实例中存放着0.N个的对象。 FeatureIterator features = featureCollection.features(); while (features.hasNext() / 对Layer核心的操作都是针对的是要素的操作。所以,这里为我们提供了要素。 Feature feature = fe

4、atures.next(); / 我们将Gis看成是一组基于数据的服务,而数据的基础是要素(Feature)。 / 所谓要素简单的说就是一个独立的对象,在地图中可能表现为一个多边形的建筑物, / 在数据库中即一个独立的条目。 / 要素具有两个必要的组成部分,几何信息和属性信息。 / 我们这里每一要素(Feature)类的对象中存放着 / 一个几何信息(Geometry)类的对象,和许多属性信息(attributes)。 Geometry defaultGeometry = feature.getDefaultGeometry();defaultGeometry: + defaultGeomet

5、ry.toString(); / 我们也可以获得要素类型。 / 何谓要素类型?相同的几何类型、属性类型的组合成为要素类型. / 要素类型相同的要素可以被存放在一个数据源中,而一个数据源只能拥有一个要素类型。 / 因此,可以用要素类型来描述一组属性相似的要素。 FeatureType featureType = featureSource.getSchema(); / 打印普通要素 for (int i = 0; i featureType.getAttributeCount(); i+) AttributeType attributeType = featureType.getAttribut

6、eType(i); if (!(attributeType instanceof GeometryAttributeType) System.out.print(attributeType.getType().getName() + ); / 打印几何要素 AttributeType at = featureType.getAttributeType(i); if (at instanceof GeometryAttributeType) System.out.print(at.getName() + / 打印前10个要素信息 Iterator iterator = featureCollec

7、tion.iterator(); for (int count = 0; iterator.hasNext(); count+) Feature feature = (Feature) iterator.next(); System.out.print(feature.getID() + feature.getNumberOfAttributes(); Object attribute = feature.getAttribute(i);(attribute instanceof Geometry) System.out.print(attribute + System.out.println

8、(); if (count = 10) break; finally featureCollection.close(iterator); / 最后打印每个Gemetry对象的WKT表示 iterator = featureCollection.iterator(); System.out.println(feature.getDefaultGeometry(); / if (count= 10) break; catch (Exception e) Ops! Something went wrong e.printStackTrace(); System.exit(0);(2)Shapefi

9、le文件写入public static void main(String args) throws Exception / 第一步:创建基于Shapefile的数据源。DataStore shape = createShapeFile(”example”);/ 创建FeatureCollection对象FeatureCollection features = createFeatures(shape.getSchema(”example”);/ 生成Shapefile文件writeToShapefile(shape, features);public static DataStore crea

10、teShapeFile(String name) try / 创建数据源仓库FileDataStoreFactorySpi factory = new IndexedShapefileDataStoreFactory();/ 创建你要创建的Shapefile文件File file = new File(”f:/shp/” + name + “.shp”);if (!file.exists() file.createNewFile();/ 我们需要给出连接Shapefile文件的参数/ 并且把这些参数信息组织到一个Map实例中/ 注意:使用file.toURI().toURL()的原因是因为jd

11、k中不赞成使用file.toURL()Map map = Collections.singletonMap(”url”, file.toURI().toURL();/ 创建一个基于以上参数信息的Shapefile数据源对象ShapefileDataStore myData = (ShapefileDataStore) factory.createDataStore(map);/ 标明Shapefile文件中存储的数据的类型是什么:MultiLineString/ Shapefile可以存储以下数据:/ Point,MultiPoint,MultiLineString,MultiPolygonF

12、eatureType featureType = DataUtilities.createType(name,“geom:MultiLineString”);/ 也可以存储其他的数据,比如:geom:MultiLineString,FieldName:java.lang.Integer/ 通过,将他们分开。/ 创建Shapefile文件myData.createSchema(featureType);/ 标明数据源使用的什么坐标参考系统myData.forceSchemaCRS(CRS.decode(”EPSG:4326);return myData; catch (FactoryExcept

13、ion fe) fe.printStackTrace(); catch (IOException e) e.printStackTrace(); catch (SchemaException se) se.printStackTrace();return null;public static FeatureCollection createFeatures(FeatureType featureType) FeatureCollection collection = FeatureCollections.newCollection();GeometryFactory gf = new Geom

14、etryFactory();Coordinate coord1 = new Coordinate(10, 10);Coordinate coord2 = new Coordinate(100, 100);Coordinate coords = new Coordinate2;coords0 = coord1;coords1 = coord2;LineString line = gf.createLineString(coords);LineString lines = new LineString1;lines0 = line;MultiLineString multi = gf.create

15、MultiLineString(lines);collection.add(featureType.create(new Object multi );return collection; catch (IllegalAttributeException iae) iae.printStackTrace();public static void writeToShapefile(DataStore data,FeatureCollection collection) DefaultTransaction transaction = null;FeatureStore store = null;

16、String featureNames = data.getTypeNames();String featureName = featureNames0;/ 创建默认的事务对象transaction = new DefaultTransaction();/ 同时标明数据源使用的要素名称,通常Shapefile文件名称和Shapefile类型名称通常是一样的。store = (FeatureStore) data.getFeatureSource(featureName);/ 关联默认事务和数据源store.setTransaction(transaction);/ 增加要素信息到数据源stor

17、e.addFeatures(collection);/ 提交mit();/ 关闭transaction.close();/ 回滚transaction.rollback(); catch (IOException e1) e1.printStackTrace();ShapeFile格式说明1、Shape技术描述一个完整的ESRI的shape文件包括一个主文件,一个索引文件,和一个dBASE表文件。主文件是一个直接存取,变记录长度文件,其中每个记录描述一个由其顶点列表组成的shape。在索引文件中,每条记录是在主文件中对应记录距离主文件头部的偏移量。dBASE中记录的是对应主文件中记录的属性记录

18、,每条主文件记录对应dBASE中的一条属性记录。几何对象和属性间的一一对应关系是基于记录编号的。在dBASE文件中的属性记录必须和主文件中的记录保持相同的顺序。1.1命名习惯所有文件名都遵循8.3命名习惯。主文件,索引文件和dBASE文件有相同的前缀。前缀必须是由字符或数字(a-Z,0-9)开始,后跟0到7个字符(a-Z,0-9,_,)主文件的后缀是.shp,索引文件的后缀是.shx,dBASE表的后缀是.dbf。在对文件名敏感的操作系统中,文件名中的所有字母都是小写的。例子 :主文件:counties.shp索引文件:counties.shxdBASE表:ounties.dbf1.2数字类型

19、Shape格式文件存储整数型和双精度型数据,本文档的余下部分将涉及到以下类型:整数:有符号32位整数(4字节) 双精度:有符号64位IEEE双精度浮点数(8字节)浮点数必须是数字值。负无穷,正无穷和无效数字(NaN)在shape文件中是不合法的。然而,shape文件支持“没有数据”这样的概念,但是目前只用于带有measure值的情况。所谓Measure值,是用于存储需要的附加数据,可以用来记录各种数据,例如权值、道路长度等信息。某些小于-1038被shape文件读取程序用来表示为“没有数据”的值。下面的第一节描述shape文件的总体结构和组织。第二节描述shape文件支持的每种shape类型的

20、记录内容。2、主文件的组织主文件(.shp)由固定长度的文件头和后面变长的记录组成。每个变长记录是由固定长度的记录头和紧接着的变长记录内容组成。图1是主文件的结构。图 1 主文件的结构文件头记录头记录内容。字节序Shape文件中所有的内容可以被分为两种类型: 与数据相关的: 主文件记录内容 主文件头的数据描述域(Shape 类型,边界盒等) 与文件管理相关的: 文件和记录长度 记录偏移量等在主文件的文件头和记录内容中的描述域中的整型和双精度浮点数据是按照little endian(PC或Intel)的字节顺序形式组织的。组成文件的其余部分和文件管理的整数和双精度浮点数是big endian(S

21、un或Motorola)字节顺序。2.1主文件头主文件头100字节长。表1描述了文件头中数据的字节位置,值,类型和字节顺序。 在此表中,位置是相对于文件头的。表 1 主文件头的描述位置字段值类型字节顺序Byte 0File Code(文件代码)9994IntegerBigByte 4UnusedByte 8Byte 12Byte 16Byte 20Byte 24File Length(文件长度)File LengthByte 28Version1000LittleByte 32Shape TypeByte 36Bounding BoxXminDoubleByte 44YminByte 52Xm

22、axByte 60YmaxByte 68*ZminByte 76*ZmaxByte 84*MminByte 92*Mmax*是未被使用的域,值为0.0,如果没有measure值或Z轴。文件长度的值指的是16位字的个数,即文件的字节长度除以2(包括组成文件头的50个16位字)。在shape文件中的所有非空shape必须是同一种shape类型。Shape类型的值如下:Shape类型Null Shape1Point3PolyLine5Polygon8MultiPoint11PointZ13PolyLineZ15PolygonZ18MultiPointZ21PointM23PolyLineM25PolygonM28MultiPointM31MultiPatch

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1