|
阅读:1992回复:8
使用arcgis engine9.2和.net 开发,检索小区和街道,然后定位. 该如何做,请给些思路或者代码,谢谢
<P>rt</P>
|
|
|
1楼#
发布于:2008-07-30 16:23
<P>c# 找到了 我再仔细研究研究。</P>
<P>谢谢了</P> |
|
|
2楼#
发布于:2008-07-30 16:21
有C#的例子吗?
|
|
|
3楼#
发布于:2008-07-30 16:16
<P>提示什么错误?光急是没用滴:),下面是帮助里关于查询的例子</P>
<H1>IQueryFilter Example</H1><CODE><PRE>Option Explicit Enum WorkspaceType enumGeodatabase = 0 enumPersonalGeodatabase = 1 enumShape = 2 enumCoverage = 3 End Enum Private Sub Command1_Click() Dim iWorkspaceConnect As Integer 'Uncomment the Workspace type of choice 'iWorkspaceConnect = enumGeodatabase 'iWorkspaceConnect = enumPersonalGeodatabase iWorkspaceConnect = enumShape 'iWorkspaceConnect = enumCoverage On Error GoTo MyError Dim pPropset As IPropertySet Set pPropset = New PropertySet Dim pFact As IWorkspaceFactory Dim pWorkspace As IWorkspace Select Case iWorkspaceConnect Case enumGeodatabase ' Geodatabase (SDE) With pPropset .SetProperty "Server", "hephaestus" .SetProperty "Instance", "sde8_mss" .SetProperty "Database", "sde" .SetProperty "user", "sde" .SetProperty "password", "go" .SetProperty "version", "sde.DEFAULT" End With Set pFact = New SdeWorkspaceFactory MsgBox "Geodatabase" Case enumPersonalGeodatabase ' Personal Geodatabase (Access) pPropset.SetProperty "DATABASE", "d:\\data\\Access Data\\SDETest.mdb" Set pFact = New AccessWorkspaceFactory MsgBox "Personal Geodatabase" Case enumShape ' Shapefile pPropset.SetProperty "DATABASE", "D:\\data\\SDEtestData\\Greeley" Set pFact = New ShapefileWorkspaceFactory MsgBox "Shapefile" Case enumCoverage ' Coverage pPropset.SetProperty "DATABASE", "D:\\data\\Coverage" Set pFact = New ArcInfoWorkspaceFactory MsgBox "Coverage" End Select ' Open the Workspace Set pWorkspace = pFact.Open(pPropset, Me.hWnd) Dim pFeatureWorkspace As IFeatureWorkspace Set pFeatureWorkspace = pWorkspace ' Open the FeatureClass ' Coverage data requires that the addition of the geometry type ' when opening the feature class (in this case polgon). The ' feature class name is separated from the geometry type with a ' ":". Dim pFeatureClass As IFeatureClass If iWorkspaceConnect = enumCoverage Then Set pFeatureClass = pFeatureWorkspace.OpenFeatureClass("parcels:polygon") Else Set pFeatureClass = pFeatureWorkspace.OpenFeatureClass("parcels") End If Dim pQueryFilter As IQueryFilter Set pQueryFilter = New QueryFilter ' Set the where clause pQueryFilter.WhereClause = "SUBTYPE = 'INDSTL'" ' Execute the query filter Dim pFeatureCursor As IFeatureCursor Set pFeatureCursor = pFeatureClass.Search(pQueryFilter, False) Dim pFeature As IFeature Dim n As Long Dim i As Long Dim iRecCount As Integer Dim pPointCollection As IPointCollection Dim lPnt As Long iRecCount = 0 ' Retrieve the results. Do Set pFeature = pFeatureCursor.NextFeature If Not (pFeature Is Nothing) Then iRecCount = iRecCount + 1 ' Create a list box lstQueryResults and uncoment the next ' five lines to list attributes and values. ' For i = 0 To (pFeature.Fields.FieldCount - 1) ' If Not pFeature.Fields.Field(i).Type = esriFieldTypeGeometry Then ' lstQueryResults.AddItem i ; " " ; pFeature.Fields.Field(i).Name ; " " ; pFeature.Value(i) ' End If ' Next i ' Uncoment the next four lines to list feature coordinates. ' Set pPointCollection = pFeature.Shape ' For lPnt = 0 To (pPointCollection.PointCount - 1) ' lstQueryResults.AddItem pPointCollection.Point(lPnt).X ; ", " ; pPointCollection.Point(i).Y ' Next lPnt End If Loop Until (pFeature Is Nothing) MsgBox iRecCount Exit Sub MyError: If Err.Number <> 0 Then MsgBox Err.Description End If End Sub</PRE></CODE> |
|
|
|
4楼#
发布于:2008-07-30 15:44
<P>总统,我按照您的vb写法改的</P>
<P>我把代码发上 请大家看看。现在仍不运行通过。</P> <P> //接口定义</P> <P> IFeatureLayer pIFeatureLayer;<BR> IFeatureClass pIFeatureClass;<BR> IFeature pIFeature;<BR> IFeatureCursor pIFeatureCursor;<BR> IQueryFilter pIqueryFilter;</P> <P> pIFeatureLayer = (IFeatureLayer)axMapControl1.get_Layer(1);//获取图层</P> <P><BR> pIFeatureClass = pIFeatureLayer.FeatureClass;</P> <P><BR> pIqueryFilter = new QueryFilterClass();</P> <P><BR> pIqueryFilter.WhereClause = this.textBox1.Text;//查询关键字</P> <P><BR> pIFeatureCursor = pIFeatureClass.Search(pIqueryFilter, false);</P> <P><BR> pIFeature = pIFeatureCursor.NextFeature();</P> <P><BR> axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null);</P> <P>我只写出了这么多,不知道还缺什么? 谢谢了,急死了</P> |
|
|
5楼#
发布于:2008-07-30 13:04
<a href="http://gisempire.com/bbs/dispbbs.asp?boardID=62;ID=44131;page=1" target="_blank" >http://gisempire.com/bbs/dispbbs.asp?boardID=62;ID=44131;page=1</A>
|
|
|
|
6楼#
发布于:2008-07-30 12:25
<P>ls的说对了,一半是没怎末查资料,多是英文的 看不懂,思考了半天也没有所以然,毕竟是新手。</P>
<P>谢谢</P> |
|
|
7楼#
发布于:2008-07-30 11:19
<P>你看看arcobjects开发的顶帖,这个是很基本的内容;</P>
<P>我想你没有查询一些资料或者经过太多思考就提出了这个问题。</P> |
|
|
|
8楼#
发布于:2008-07-30 09:23
哎呀,也没人理我。 论坛的版主干吗去了?!!
|
|