阅读:3769回复:8
[原创]个人开发经验总结从大学毕业一年半了,到这个单位工作从大三实习开始也两年多了,参与了国家的4个项目,也同时制作了很多数据生产工具,我自己觉得还是有些收获和成长,年底项目收尾没什么事情做,就依据开发帮助文档中的例子和代码,在我个人的理解上,并以一个中国人的思维方式,总结了一些经验吧。 可能高手觉得也就是这么一回事儿,不过我想对于一些新手来说,还是有一定的帮助,希望大家喜欢。 从2楼开始逐步更新,一楼用作目录吧就 |
|
|
1楼#
发布于:2010-07-24 21:39
受教了 ![]() |
|
2楼#
发布于:2010-03-23 15:11
不错
|
|
3楼#
发布于:2010-01-08 21:49
不错的东西,对于初学者还是非常有帮助的 支持楼主继续更新 |
|
|
4楼#
发布于:2010-01-07 08:52
还是不懂 啊 有点晕 呵呵 |
|
5楼#
发布于:2009-12-29 15:31
4. 关于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(方法,移除所有在此数组中的点) |
|
|
6楼#
发布于:2009-12-29 15:31
3. 关于IPoint接口(esriGeometry)IPoint接口的第一个方法PutCoords(X,Y)(方法,设置该点的坐标)或者直接调用可以读写的属性X和Y,将坐标赋值给X和Y 例子代码: Dim pPoint As IPoint Set pPoint = New Point pPoint.PutCoords 100, 100 IPoint接口的第二个方法QueryCoords(X,Y)(方法,得到该点的坐标) 例子代码: Dim pPoint as IPoint Dim dX as Double, dY as Double pPoint.QueryCoords dX, dY IPoint接口的第三个方法ConstrainAngle (constraintAngle, anchor, allowOpposite )(方法,如果第三个参数allowOpposite为True,则将第二个参数anchor这个点作为一个原点,然后以第一个参数constraintAngle为与x轴的角度,做一条直线,再将调用此参数的点向该直线做垂线并交于一个新点,并将调用此方法的点移动到该点) 例子代码: 'Finds the closes point to line from (0,0) with angles 'defined by steps of pi/4 (Note all angles in radians) Dim pApoint As IPoint Dim pNpoint As IPoint Dim pi As Double Dim dAngle As Double Dim i As Long
Set pApoint = New Point pi = 4 * Atn(1) dAngle = 0 pApoint.PutCoords 0, 0
Set pNpoint = New Point
For i = 0 To 7 pNpoint.PutCoords 1, 0 dAngle = i * pi / 4 pNpoint.ConstrainAngle dAngle, pApoint, True MsgBox "angle = " ; i ; "*pi/4" ; vbCrLf ; pNpoint.X ; "," ; pNpoint.Y Next i IPoint接口的第四个方法ConstrainDistance (constraintRadius, anchor )(方法,以第二个参数anchor这个点为圆心,然后以第一个参数constraintRadius为半径做一个圆,将调用此参数的点移动到该点与圆心做线段交于该圆的交点上) 例子代码: Public Sub t_constraindistance() Dim pPoint As IPoint Dim pNPoint As IPoint Dim dRadius As Double
Set pPoint = New Point pPoint.PutCoords 0, 0
Set pNPoint = New Point pNPoint.PutCoords 2, 2 dRadius = 1.4142135623731
pNPoint.ConstrainDistance dRadius, pPoint MsgBox "Radius = " ; dRadius ; " x,y = " ; pNPoint.X ; "," ; pNPoint.Y End Sub |
|
|
7楼#
发布于:2009-12-29 15:28
2. 关于IFields接口(esriGeoDatabase)IFields接口的第一个属性Field(Index) (只读,以用于获取具体的字段,返回类型为IField) IFields接口的第二个属性FieldCount(只读,以用于获取属性的数量) 利用上面两个接口并用索引去依次循环获得每一列的属性pField(Ifield接口) 例子代码: Dim i As Long Dim pField As IField For i = 0 To (pFields.FieldCount - 1) Set pField = pFields.Field(i) Debug.Print pField.Name ; ": " ; pField.Type Next i IFields接口的第三个方法FindField(Name)(方法,输入想要查找的属性域字段的名称,如果有,则返回该属性域字段在此Fields的索引,没有则返回-1) 例子代码: Dim i As Integer Dim pFields As IFields Dim pField As IField 'Get Fields Set pFields = pFeatClass.Fields 'Find the field named "average_income" i = pFields.FindField("average_income") 'Set the current field Set pField = pFields.Field(i) 'Delete field from featureclass pFeatClass.DeleteField pField IFields接口的第四个方法FindFieldByAliasName(Name)(方法,与第三个方法类似,此时输入的为该列属性字段的别名,此方法不经常用) 例子代码: Dim i As Integer Dim pFields As IFields Dim pField As IField 'Get Fields Set pFields = pFeatClass.Fields 'Find the field with the aliasname "current population" i = pFields.FindFieldByAliasName("current population") 'Set the current field Set pField = pFields.Field(i) 'Delete field from featureclasspFeatClass.DeleteField pField |
|
|
8楼#
发布于:2009-12-29 15:27
1. 关于IField接口(esriGeoDatabase)IField接口的第一个属性AliasName(只读,获得字段的别名) IField接口的第二个方法CheckValue(Value)(方法,对于指定的属性字段,基于字段类型判断参数值是否有效,有效,则返回True,否则返回False) 例子代码: 'Get Field Set pField = pFields.Field(6) bChkField = pField.CheckValue(45.86) If bChkField = True Then 'Add data to selected rows for the field selected. End If IField接口的其他属性均为只读属性,常用有Name(只读,获得字段的名称) 例子代码: Dim pFields As IFields Dim pField As IField Dim pGeoDef As IGeometryDef Dim pDomain As IDomain Dim i As Long Set pFields = pFeatClass.Fields For i = 0 To pFields.FieldCount - 1 Set pField = pFields.Field(i) If pField.Type = esriFieldTypeGeometry Then Set pGeoDef = pField.GeometryDef Else Debug.Print pField.AliasName Debug.Print pField.DefaultValue Set pDomain = pField.Domain Debug.Print pField.Editable Debug.Print pField.IsNullable Debug.Print pField.Length Debug.Print pField.Name Debug.Print pField.Precision Debug.Print pField.Required Debug.Print pField.Scale Debug.Print pField.Type Debug.Print pField.VarType End If Next |
|
|