已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ArcGIS接口详细说明. 1GeometryGeometry 库处理存储在特征类(feature classes)或其它图形要素(graphical elements)中的特征的 geometry 或 shape。大多数用户交互的基本几何对象有 Point 、MultiPoint 、Polyline 和 Polygon 。除了这些顶层的 实体, 还有作为 Polylines 和 Polygons 构建模块的几何体(geometries)。 这些是组成几何体的基元(primitives)。 它们是 Segments、Paths 和 Rings。Polylines 和 Polygons 由形成一条 Path 的依次相连的 Segments 组成。 一个 Segment 包含两个不同的点, 起点和终点, 和一个定义从起点到终点的曲线的要素类型。 这种 segments 有 CircularArc、 Line、 EllipticArc 和 BezierCurve。 所有的几何对象都可以有与它们顶点相关的 Z、 和 IDs。 MISegmentCollection接口被Path,Ring,Polyline和Polygon四个类所实现,它们被称作是Segment集合对象,使用这个接口可以处理组成Segment集合对象中的每一个子Segment对象。使用ISegmentCollection接口可以为一个Segment集合对象添加,插入,删除Segment子对象。ISegmentCollection接口SetCircle和SetRectangle方法提供了一种简单不需要添加Segment的情况下构建一个完成的Path,Ring,Polyline和Polygon的方法。Geometry集合接口 通过前边对于具体的Geometry对象的介绍可知,除了Point对象之外,其他几何对象都是通过其他几何对象集合构建而成。如MultiPoint对象是点的集合,Path对象是Segment对象的集合,Polyline对象是Path对象的集合,Polygon对象是Ring对象的集合,Multipatch对象是Triangle Strip和Trangle Fan, Trangle,Ring对象的集合。 ArcGIS Engine提供了三个主要的几何图形集合接口用于对几何对象的操作,分别是IPointCollection,ISegmentCollection和IGeometryCollection,这些接口揭示出ArcGIS Engine的几何模型的实质它们是一种组合构成的模式,这种组合并不一定按照严格的层次结构组织。 在前面介绍一些几何对象的时候,也给大家演示了部分使用功能,这三个接口在程序开发中经常使用到,接下来简单阐述以下这三个接口的使用方法。 IGeometryCollection接口 IGeometryCollection接口被Polygon,Polyline, Multipoint, Multipatch, Trangle,T rangle Strip,Trangle Fan和GeometryBag所实现。IGeometryCollection接口提供的方法可以让开发者对一个几何对象的组成元素即子对象进行添加,改变和移除。例如: 组成Polyline对象的子对象是Path对象。 组成Polygon对象的子对象是Ring对象。 组成Multipoint对象的子对象是Point对象。 组成MultiPatch对象的子对象是TrangleFan TrangleStrip,Triangle或Ring对象。 组成GeometryBag对象的是任何类型的几何体对象,实际上GeometryBag是一个可以容纳任何类型几何对象的容器。 IGeometryCollection的Geometry 属性可以通过一个索引值返回一个组成该几何对象的某个子对象,而GeometryCount返回组成该几何对象的子对象的数目。 IGeometry的AddGeometry和AddGeometries方法都用于向一个几何对象添加子对象,它们的区别是前者一次只能添加一个几何对象,而后者可以一次添加一个几何对象数组。除此之外,AddGeometry方法可以将子对象添加到几何的指定索引值的位置,而AddGeometries方法将子对象数组添加到集合的最后。 在使用AddGeometry方法添加子对象到Polygon对象的过程中,如果子对象即Ring出现覆盖现象,那么多边形就没有封闭或出现了包含关系,那么这个Polygon就不是简单Polygon,因此通过IGometryCollection来创建一个Polygon时,需要使用ITopologicalOperator 的Simplify方法保证其有效性。13. 关于IFeatureClass接口(esriGeoDatabase)IFeatureClass接口的第一个方法AddField(Field) (方法,增加一个属性字段到这个要素类,其中传入的参数为一个IField接口的变量,此变量可以由其他要素类获得并赋值给要操作的要素类,可用IFeilds接口的Field属性来获得)IFeatureClass接口的第二个方法DeleteField(Field) (方法,删除一个属性字段,其中传入的参数为一个IField接口的变量)IFeatureClass接口的第三个属性Fields(只读,获取该要素类的全部属性字段,返回一个IFields类型的变量)IFeatureClass接口的第四个方法FindField(Name) (方法,去查找在该要素类里面是否含有参数名字的属性字段,如果有,则返回索引,没有,则返回-1)IFeatureClass接口的第五个属性AreaField(只读,获取属性字段为geometry的那一个Field)IFeatureClass接口的第六个方法Search (filter, Recycling) (方法,去得到一个IFeatureCursor类型的游标,该游标由filter来控制赛选,如果filter等于null,则返回整个featureclass的游标,再用IfeatureCursor的NextFeature的方法依次得到每一个Feature)IFeatureClass接口的第七个方法Insert(useBuffering) (方法,去得到一个IFeatureCursor类型的游标,来用作插入新的Features,useBuffering是一个布尔型参数,当为True时即可以插入新的Feature,再用IFeatureCursor的InsertFeature (buffer )的方法去插入一个新的Feature)IFeatureClass接口的第八个方法CreateFeatureBuffer(方法,新建一个缓冲,返回一个IFeatureBuffer类型的变量,然后再对这个变量进行操作)关于IFeatureCursor接口(esriGeoDatabase)IFeatureCursor接口的第一个方法NextFeature(方法,将游标向前跳到下一个位置,并且返回该位置的Feature)IFeatureCursor接口的第二个方法UpdateFeature(Feature) (方法,对当前游标位置的Feature进行更新)IFeatureCursor接口的第三个方法InsertFeature(buffer) (方法,用参数传进来的属性值插入一个新的要素到数据库中,返回该插入新的Feature的ID值,其中参数类型为IFeatureBuffer) private void button1_Click(object sender, EventArgs e) string FilePathName=E:数据样本测试文件夹; /创建坐标轴pline图层 string MapLayerName = ; shapeFileFullName = 测试.shp; MapLayerName = shapeFileFullName.Substring(0, shapeFileFullName.Length - 4); string PointLineHu = Polyline;/标记是点、线、弧point line yuanhu /显示绘图页面 tabControl1.Show(); tabControl1.SelectedTab = tabPageMap; if (Directory.Exists(FilePathName) = false)/如果不存在该文件夹就创建文件夹 Directory.CreateDirectory(FilePathName); /接口IWorkspaceFactory提供创建和打开workspace的成员以及访问workspace factory信息的成员。 IWorkspaceFactory pWSF = new ShapefileWorkspaceFactoryClass(); /IFeatureWorkspace接口用于访问和管理地理数据库中的要素的重要成分数据集, IFeatureWorkspace pFWS = (IFeatureWorkspace)pWSF.OpenFromFile(FilePathName, 0); string outfileNamePath = FilePathName + + shapeFileFullName; /如果shapefile存在,询问覆盖还是返回 /如果shapefile存在,询问覆盖还是返回 if (File.Exists(outfileNamePath) if (MessageBox.Show( 文件已经存在,是否要重新计算覆盖原文件?, 询问!, MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = DialogResult.OK) if (axMapView.LayerCount 0) this.axMapView.ClearLayers(); this.axMapView.Refresh(); IFeatureClass featureClass = pFWS.OpenFeatureClass(shapeFileFullName); IDataset pDataset = (IDataset)featureClass; pDataset.Delete(); else return ; else /IFeatureClass featureClass = pFWS.OpenFeatureClass(shapeFileFullName); /调用函数CreatFields,定义坐标轴属性字段 IFields pFields = CreatFields(MapLayerName, PointLineHu); /定义一类地物特征 IFeatureClass pFeatureClass; pFeatureClass = pFWS.CreateFeatureClass(shapeFileFullName, pFields, null, null, esriFeatureType.esriFTSimple, Shape, ); /pFeatureLayer.Name = MapLayerName; /axMapView.Map.AddLayer(pFeatureLayer); IFeatureLayer pFeaturelayer = new FeatureLayerClass(); pFeaturelayer.FeatureClass = pFeatureClass; IGeometry pGeom; /IGeoFeatureLayer pGFeatureLyr = pFeatureLayer as IGeoFeatureLayer; / IGeoFeatureLayer pGFeatureLyr = pFeatureLayer as IGeoFeatureLayer; /pGeom.GeometryType = esriFieldType.esriFieldTypeGeometry; IWorkspaceEdit w = (pFeatureClass as IDataset).Workspace as IWorkspaceEdit; w.StartEditing(true); w.StartEditOperation(); IFeatureCursor pFeatCur; IFeatureBuffer pFeatBuff; pFeatCur = pFeatureClass.Insert(true); pFeatBuff = pFeatureClass.CreateFeatureBuffer(); IFields pFlds; IField pFld; object o = Type.Missing; for (int j = 10; j 20; j+) /X坐标轴 IPoint pPoint = new PointClass(); pPoint.X = j; pPoint.Y = j; for (int m = 100; m 200;m=m+10 ) IPointCollection pPointCol = new PolylineClass(); IPoint pPoint_1 = new PointClass(); pPoint_1.X = m; pPoint_1.Y = m; pPointCol.AddPoint(pPoint, ref o, ref o); pPointCol.AddPoint(pPoint_1, ref o, ref o); IPolyline pline = pPointCol as IPolyline; IFeature pFeature = pFeatureClass.CreateFeature(); pFeature.Shape = pline as IPolyline; /pGeom = pFeature as IGeometry; /pline = pGeom as IPolyline; /esriFieldType.esriFieldTypeGeometry pFeatBuff.set_Value(pFeature.Fields.FindField(layername), (object)(MapLayerName); pFeatBuff.set_Value(pFeature.Fields.FindField(leibie), (object)(K_Y_Xu); pFeatCur.InsertFeature(pFeatBuff); w.StopEditOperation(); w.StopEditing(true); if (pFeaturelayer != null) if (MapLayerName != pFeaturelayer.Name) pFeaturelayer.Name = MapLayerName; axMapView.Map.AddLayer(pFeaturelayer); else /在画图事件中调用 /IFeatureLayer pFeatureLayer = this.axMapControl1.get_Layer(0) as IFeatureLayer; int mmm=pFeaturelayer.FeatureClass.FeatureCount(null); UniqueValueRenderFlyr(pFeaturelayer, MapLayerName); axMapView.Refresh(); /* private void Add(IGeometry pGeom) IFeatureLayer pFeatureLayer = axMapView.get_Layer(0) as IFeatureLayer; IFeatureClass pFeatClass; pFeatClass = pFeatureLayer.FeatureClass; IFeatureCursor pFeatCur; IFeatureBuffer pFeatBuff; pFeatCur = pFeatClass.Insert(true); pFeatBuff = pFeatClass.CreateFeatureBuffer(); /esriGeometryType.esriGeometryPolyline IFields pFlds; IField pFld; int i; IPolygon pPolygon; pPolygon = pGeom as IPolygon; pFlds = pFeatClass.Fields; for (i = 1; i pFlds.FieldCount; i+) pFld = pFlds.get_Field(i); if (pFld.Type = esriFieldType.esriFieldTypeGeometry) /pFeatBuff.set_Value(i, pGeom); /pFeatBuff.Name_2 = Shape; /pFeatBuff.Type_2 = esriFieldType.esriFieldTypeGeometry; else if (pFld.Type = esriFieldType.esriFieldTypeInteger) pFeatBuff.set_Value(i, Convert.ToInt32(0); else if (pFld.Type = esriFieldType.esriFieldTypeDouble) pFeatBuff.set_Value(i, Convert.ToDouble(0); else if (pFld.Type = esriFieldType.esriFieldTypeSmallInteger) pFeatBuff.set_Value(i, Convert.ToInt16(0); else if (pFld.Type = esriFieldType.esriFieldTypeString) pFeatBuff.set_Value(i, noname); else MessageBox.Show(不需要这个字段); pFeatCur.InsertFeature(pFeatBuff); */1. IField接口(esriGeoDatabase). 22. IFieldEdit接口(esriGeoDatabase). 23. IFields接口(esriGeoDatabase). 24. IRow接口(esriGeoDatabase). 35. ITable接口(esriGeoDatabase). 36. IArea接口(esriGeometry). 47. IEnvelope接口(esriGeometry). 48. IPoint接口(esriGeometry). 59. IPointArray接口(esriGeometry). 510. IPointCollection接口(esriGeometry). 611. IPolyline接口(esriGeometry). 612. IGeometry接口(esriGeometry). 613. IFeature接口(esriGeoDatabase). 714. IFeatureLayer接口(esriCarto). 815. IFeatureClass接口(esriGeoDatabase). 816. IFeatureCursor接口(esriGeoDatabase). 917. ISpatialFilter接口(esriGeoDatabase). 918. IQueryFilter接口(esriGeoDatabase). 1119. IFeatureSelection接口(esriCarto). 1120. IMap接口(esriCarto). 1121. IPropertySet接口(esriSystem). 1222. IFeatureWorkspace接口(esriGeoDatabase). 1223. IWorkspaceEdit接口(esriGeoDatabase). 1224. IWorkspaceFactory接口(esriGeoDatabase). 1325. ITopologicalOperator接口(esriGeometry). 13 1.1. IField接口(esriGeoDatabase)IField接口的第一个属性AliasName(只读,获得字段的别名)IField接口的第二个方法CheckValue(Value)(方法,对于指定的属性字段,基于字段类型判断参数值是否有效,有效,则返回True,否则返回False)例子代码: IFeatureClass pFC_SCP_PT;editPT = new FieldClass();editPT.Precision_2 = 8;editPT.Scale_2 = 3;editPT.Name_2 = ELEV1;editPT.Type_2 = esriFieldType.esriFieldTypeDouble;IField接口的其他属性均为只读属性,常用有Name(只读,获得字段的名称)1.2. IFieldEdit接口(esriGeoDatabase)所有该接口的属性均为可读可写,经常用与对新建字段的设置,因为字段一旦被设置,其基本属性就不能被更改,所以就需要该接口类型的变量去转换,方法为:IFeatureClass pFC_SCP_PT; IFieldEdit editPT = new FieldClass(); pFC_SCP_PT.AddField(IField)editPT); 如果在vb中去编写代码,则赋值和获取均为同一属性,而在C#中,为了区分设置和获取,属性均有两个,类似于Name和Name_2,这样就可以区分了,普遍用设置的带有_2的那个属性。IFieldEdit接口的第一个属性Name (读写,设置或者获取该变量类型变量字段的名称)IFieldEdit接口的第二个属性Precision(读写,设置或者获取该变量类型变量字段的长度)IFieldEdit接口的第三个属性Scale(读写,设置或者获取该变量类型变量字段的精度)IFieldEdit接口的第四个属性Type(读写,设置或者获取该变量类型变量字段的类型) 1.3. IFields接口(esriGeoDatabase)IFields接口的第一个属性Field(Index)(只读,以用于获取具体的字段,返回类型为IField)IFields接口的第二个属性FieldCount(只读,以用于获取属性的数量)利用上面两个接口并用索引去依次循环获得每一列的属性pField(Ifield接口)IFields接口的第三个方法FindField(Name)(方法,输入想要查找的属性域字段的名称,如果有,则返回该属性域字段在此Fields的索引,没有则返回-1)IFields接口的第四个方法FindFieldByAliasName(Name)(方法,与第三个方法类似,此时输入的为该列属性字段的别名,此方法不经常用) 4. IRow接口(esriGeoDatabase)IRow接口的第一个方法Delete(方法,删除该行)IRow接口的第二个属性Fields(只读,获取该Feature要素的字段集合,返回值为IFields类型)此方法类似于IFeature接口的Fields属性IRow 接口的第三个方法Store(方法,保存该行。)此方法类似于IFeature接口的Store方法IRow接口的第四个属性Table(只读,获取该行所在的表格,返回值为ITable类型)IRow接口的第五个属性Value(Index) (读写,获取该行在参数索引的字段的值,注意,索引Index是从0开始的。)object.Value(Index ) = value IRow接口的第六个属性HasOID(只读,判断指出该行是否有OID)IRow接口的第七个属性OID(只读,获取该行的OID值) 5. ITable接口(esriGeoDatabase)ITable是把要素类当成一个表格来看,每一列对应一个字段(Field),每一行对应一个要素(Feature),所以对要素类(IFeatureClass)接口的操作均可以类似的在Itable接口中找到。两个接口可以进行如下强制转化: IFeatureClass pFC;ITable pTable;pTable =(ITable)pFC; ITable接口的第一个方法AddField(Field)(方法,增加一个属性字段到这个表,其中传入的参数为一个IField接口的变量,此变量可以由其他表获得并赋值给要操作的表,可用IFeilds接口的Field属性来获得)ITable接口的第二个方法GetRow(OID) (方法,通过OID来从表格数据库中获取一行,返回一个IRow接口的变量)此方法类似于IFeatureClass接口的GetFeature方法 ITable接口的第三个方法GetRows(oids, Recycling) (方法,得到一个游标ICursor,通过一个oids的OID数组参数和一个Recycling的布尔类型的参数,一般为True)此方法类似于IFeatureClass接口的GetFeatures方法 ITable接口的第四个方法RowCount(QueryFilter) (方法,得到满足查询过滤器条件的行数。此方法IFeatureClass接口没有,所以是一个很好的有条件查询要素数量的一个方法) 6. IArea接口(esriGeometry)IArea接口的第一个属性Area(只读,返回一个double类型的数值,为此Area的面积)IArea接口的第二个属性Centroid(只读,返回一个IPoint类型的变量,为此Area的重心)IArea接口的第三个属性LablePoint(只读,返回一个IPoint类型的变量,为此Area的标签的位置,一般都在此Area的内部)IArea接口的第四个方法QueryCentroid (Center ) (方法,Center参数为一个IPoint类型的变量,通过调用此方法将重心点赋值给参数Center)IArea接口的第五个方法QueryLablePoint (LablePoint ) (方法,LablePoint参数为设置IPoint类型的变量,通过调用此方法将标签点赋值给参数LablePoint) 7. IEnvelope接口(esriGeometry)IEnvelope接口的第一个方法CenterAt(pPoint) (方法,将这个矩形的边框移动到参数pPoint的位置,但是其他属性不变,如它的Width和Height)IEnvelope接口的长宽属性Height和Width属性(读写,可以通过该属性获取或设置该边框的长和宽)IEnvelope接口的4个顶点属性UpperLeft、UpperRight、LowerLeft和LowerRight(读写,返回IPoint类型的四个顶点,比直接获得最值坐标更加方便严谨)IEnvelope接口的最值坐标属性XMax、XMin、YMax和YMin(读写,可以通过该属性获取或设置该边框的四个顶点的坐标)IEnvelope接口的第五个方法Union (inEnvelope ) (方法,将参数输入的几何边框和调用该方法的几何边框求并集,并将结果赋值给第一个边框,即调用此方法的object)例子代码:IEnvelope接口的第六个方法Union (inEnvelope ) (方法,返回与输入参数相交的区域的几何边框,并将结果赋值给第一个边框,即调用此方法的object)IEnvelope接口的第七个方法PutCoords (XMin, YMin,XMax,YMax) (方法,将新建的一个边框的4个极坐标设置为输入的参数)IEnvelope接口的第八个方法QueryCoords (XMin, YMin,XMax,YMax)(方法,将已有的一个边框的4个极坐标输出到参数当中以备后用)IEnvelope接口的第九个方法Expand (dx, dy, asRatio) (方法,按照输入的dx与dy参数来放大或者缩小当前的边框,用与对ArcMap窗体的中心放大或缩小,或者点击屏幕获得点击点的坐标,并将中心点设置成点击点,并进行一定比例的放大或者缩小)例子代码:一般情况设置为True,来控制倍数的放大IEnvelope接口的第十个方法Offset (X, Y)(方法,将已有的一个边框的按照输入参数的大小来进行水平竖直的移动) 8. IPoint接口(esriGeometry)IPoint接口的第一个方法PutCoords(X,Y)(方法,设置该点的坐标)或者直接调用可以读写的属性X和Y,将坐标赋值给X和Y例子代码:Dim pPoint AsIPointSet pPoint = NewPointpPoint.PutCoords100,100IPoint接口的第二个方法QueryCoords(X,Y)(方法,得到该点的坐标)例子代码:Dim pPoint asIPointDim dX asDouble,dYasDoublepPoint.QueryCoordsdX,dYIPoint接口的第三个方法ConstrainAngle (constraintAngle, anchor, allowOpposite ) (方法,如果第三个参数allowOpposite为True,则将第二个参数anchor这个点作为一个原点,然后以第一个参数 constraintAngle为与x轴的角度,做一条直线,再将调用此参数的点向该直线做垂线并交于一个新点,并将调用此方法的点移动到该点)IPoint接口的第四个方法ConstrainDistance(constraintRadius, anchor ) (方法,以第二个参数anchor这个点为圆心,然后以第一个参数constraintRadius为半径做一个圆,将调用此参数的点移动到该点与圆心做线段交于该圆的交点上) 9. IPointArray接口(esriGeometry)IPointArray接口的第一个方法Add(p) (方法,向该类型的数组变量添加Point)IPointArray接口的第二个属性Count (只读,获得该数组变量中Point的个数,返回Long类型变量)IPointArray接口的第三个属性Element(Index)(只读,获得该数组变量中位于参数Index索引位置的点Point,返回一个Point类型的变量)IPointArray接口的第四个方法Insert (Index, p ) (方法,向索引位置Index插入一个点Point)IPointArray接口的第五个方法Remove (Index ) (方法,移除索引位置Index的点Point)IPointArray接口的第六个方法RemoveAll (方法,移除所有在此数组中的点) 10. IPointCollection接口(esriGeometry)IPointCollection接口的第一个方法AddPoint(inPoint ,before ,after) (方法,向该类型的点集变量添加Point,第一个参数为添加的Point,第二个第三个参数为可选择的参数,默认添加进点集的末尾)IPointCollection接口的第二个属性Point(i) (只读,获得该点集变量中第i个位置的Point,返回IPoint类型变量,i从0计算开始)IPointCollection接口的第三个属性PointCount (只读,获得该点集变量中点的个数,返回Long类型变量,切记,如果一个PointCollection变量是由闭合的Geometry转换而来的话,那么点的个数比节点数多一个,因为是闭合的,所以首位节点是同一个点) 11. IPolyline接口(esriGeometry)IPolyline接口的第一个属性FromPoint与ToPoint(读写,设置或者读取该点的起始点和终止点,返回都是IPoint类型的变量)IPolyline接口的第二个方法QueryFromPoint (from )(方法,返回IPoint类型的变量到参数from)IPolyline接口的第三个方法QueryToPoint (to ) (方法,返回IPoint类型的变量到参数to) IPolyline接口的第四个方法Generalize (maxAllowableOffset ) (方法,用道格拉斯普克发来简化polyline)IPolyline接口的第五个方法Weed (maxAllowableOffsetFactor ) (方法,和方法Generalize类似,均为简化polyline的方法,不同的是参数。) 12. IGeometry接口(esriGeometry)IGeometry接口的第一个属性Dimension(只读,返回一个类型为esriGeometryDimension的该图形的几何维度)1 esriGeometryNoDimension2 esriGeometry0Dimension3 esriGeometry1Dimension4 esriGeometry2Dimension5 esriGeometry25Dimension6 esriGeometry3DimensionIGeometry接口的第二个属性Extent(只读,返回一个类型为IEnvelope的该图形的几何范围的最大边框)IGeometry接口的第三个属性GeometryType(只读,返回一个类型为esriGeometryType的该图形的几何类型)esriGeometryNull = 0esriGeometryPoint = 1esriGeometryMultipoint = 2esriGeometryPolyline = 3esriGeometryPolygon = 4esriGeometryEnvelope = 5esriGeometryPath = 6esriGeometryAny = 7esriGeometryMultiPatch = 9esriGeometryRing = 11esriGeometryLine = 13esriGeometryCircularArc = 14esriGeometryBe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论