|
阅读:839回复:1
如何从sde数据库获得一个featurelayer?
<P>我做一个GIS 服务(只要返回一个featurelayer即可),可是在vb.net中写了如下代码,总是提示错误:无法找到实现类ESRI.ArcGIS.Carto.FeatureLayer。我已经添加了对ESRI.ArcGIS.Carto的引用,并且在程序的开头已经Imports ESRI.ArcGIS.Carto。不知何原因,请大家指点一下</P>
<P>Imports System.Web.Services<BR>Imports ESRI.ArcGIS.Carto<BR>Imports ESRI.ArcGIS.DataSourcesGDB<BR>Imports ESRI.ArcGIS.esriSystem<BR>Imports ESRI.ArcGIS.Framework<BR>Imports ESRI.ArcGIS.Geodatabase</P> <P>System.Web.Services.WebService(Namespace := "<a href="http://tempuri.org/AOTestWebService/Service1" target="_blank" >http://tempuri.org/AOTestWebService/Service1</A>")> _<BR>Public Class Service1<BR> Inherits System.Web.Services.WebService</P> <P> <WebMethod()> Public Function GetFeatureLay() As IFeatureLayer 'return a featurelayer from sde database<BR> Dim pWorkspaceFact As IWorkspaceFactory = New SdeWorkspaceFactory<BR> Dim pWorkspace As IWorkspace<BR> Dim pFeatureWorkspace As IFeatureWorkspace<BR> Dim pPropertySet As IPropertySet = New PropertySet<BR> With pPropertySet<BR> .SetProperty("SERVER", "xxzx-zy")<BR> .SetProperty("INSTANCE", "esri_sde")<BR> .SetProperty("DATABASE", "sde")<BR> .SetProperty("USER", "sde")<BR> .SetProperty("PASSWORD", "sde")<BR> .SetProperty("VERSION", "sde.default")<BR> End With<BR> Try<BR> pWorkspace = pWorkspaceFact.Open(pPropertySet, 0)<BR> pFeatureWorkspace = pWorkspace<BR> Dim pFeaturelayer As IFeatureLayer = New FeatureLayer<BR> pFeaturelayer.FeatureClass = pFeatureWorkspace.OpenFeatureClass("sde.dbo.gzcity_region")<BR> Return (pFeaturelayer)<BR> Catch ex As System.Exception<BR> MsgBox("error:" + ex.Message)<BR> End Try<BR> End Function</P> <P>End Class<BR></P> <img src="images/post/smile/dvbbs/em12.gif" /> |
|
|
1楼#
发布于:2005-06-28 17:33
<P>用.net的esri的自动引用工具,把engine的库都引上,看是否能用</P>
|
|
|