kevin518
路人甲
路人甲
  • 注册日期2008-03-03
  • 发帖数2
  • QQ
  • 铜币117枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1189回复:2

关于如何以SHP格式保存

楼主#
更多 发布于:2008-06-03 09:36
<P>因工作需要,现在把1个SHP的图层分解成N个图层,现在想把这N个图层分解以图层名为文件名保存成SHP格式,请问代码怎么写?</P>
喜欢0 评分0
kevin518
路人甲
路人甲
  • 注册日期2008-03-03
  • 发帖数2
  • QQ
  • 铜币117枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2008-06-03 09:48
<P>补充下用的是ENGINE</P>
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
2楼#
发布于:2008-06-03 14:16
<P>先建立图层,然后写入要素了,这些功能在开发包的例子里有滴</P>
<P>比如下面的函数,是建立个shapefile</P>
<P><FONT color=#0000ff>Public Function</FONT> <FONT style="BACKGROUND-COLOR: #93a070" color=#ffffff>CreateShapefile</FONT>( _<BR>  sDir <CODE><FONT color=#0000ff>As String</FONT></CODE>, sName <CODE><FONT color=#0000ff>As String</FONT></CODE>, _
  shapeType <CODE><FONT color=#0000ff>As</FONT></CODE> esriGeometryType, _<BR>  hasM <CODE><FONT color=#0000ff>As Boolean</FONT></CODE>, _<BR>  hasZ <CODE><FONT color=#0000ff>As Boolean</FONT></CODE>, _<BR>  pSR <CODE><FONT color=#0000ff>As</FONT></CODE> ISpatialReference, _<BR>  <CODE><FONT color=#0000ff>Optional</FONT></CODE> dGridSize <CODE><FONT color=#0000ff>As Double</FONT></CODE> = 0) <CODE><FONT color=#0000ff>As</FONT></CODE> IFeatureClass<BR>  <BR><CODE><FONT color=#0000ff>On Error GoTo</FONT></CODE> CreateShape_ERR<BR><BR>  <CODE><FONT color=#0000ff>Set</FONT></CODE> <FONT style="BACKGROUND-COLOR: #93a070" color=#ffffff>CreateShapefile</FONT> = <CODE><FONT color=#0000ff>Nothing<BR>  <BR>  Dim</FONT></CODE> shapeWorkspaceFactory <CODE><FONT color=#0000ff>As</FONT></CODE> IWorkspaceFactory<BR>  <CODE><FONT color=#0000ff>Set</FONT></CODE> shapeWorkspaceFactory = <CODE><FONT color=#0000ff>New</FONT></CODE> ShapefileWorkspaceFactory<BR>  <BR>  <CODE><FONT color=#0000ff>Dim</FONT></CODE> connectionProperties <CODE><FONT color=#0000ff>As</FONT></CODE> IPropertySet<BR>  <CODE><FONT color=#0000ff>Set</FONT></CODE> connectionProperties = <CODE><FONT color=#0000ff>New</FONT></CODE> PropertySet<BR>  connectionProperties.SetProperty "DATABASE", sDir<BR>  <BR>  <CODE><FONT color=#0000ff>Dim</FONT></CODE> shapeWorkspace <CODE><FONT color=#0000ff>As</FONT></CODE> IFeatureWorkspace<BR>  <CODE><FONT color=#0000ff>Set</FONT></CODE> shapeWorkspace = shapeWorkspaceFactory.Open(connectionProperties, 0)<BR>  <CODE><FONT color=#0000ff>If</FONT></CODE> (<CODE><FONT color=#0000ff>Not</FONT></CODE> shapeWorkspace <CODE><FONT color=#0000ff>Is Nothing</FONT></CODE>) <CODE><FONT color=#0000ff>Then<BR>    Dim</FONT></CODE> pFC <CODE><FONT color=#0000ff>As</FONT></CODE> IFeatureClass<BR>    <CODE><FONT color=#0000ff>Set</FONT></CODE> pFC = OpenShapeFile(sDir, sName)<BR>    <BR>    <CODE><FONT color=#0000ff>If Not</FONT></CODE> pFC <CODE><FONT color=#0000ff>Is Nothing Then<BR>        Dim</FONT></CODE> pDS <CODE><FONT color=#0000ff>As</FONT></CODE> IDataset<BR>        <CODE><FONT color=#0000ff>Set</FONT></CODE> pDS = pFC<BR>        pDS.Delete<BR>    <CODE><FONT color=#0000ff>End If<BR>    <BR>    Dim</FONT></CODE> pFields <CODE><FONT color=#0000ff>As</FONT></CODE> IFields<BR>    <CODE><FONT color=#0000ff>Set</FONT></CODE> pFields = CreateBasicFields(shapeType, hasM, hasZ, pSR, dGridSize)<BR>  <BR>    <CODE><FONT color=#0000ff>Dim</FONT></CODE> pFClass <CODE><FONT color=#0000ff>As</FONT></CODE> IFeatureClass<BR>    <CODE><FONT color=#0000ff>Set</FONT></CODE> pFClass = shapeWorkspace.CreateFeatureClass(sName, pFields, <CODE><FONT color=#0000ff>Nothing</FONT></CODE>, <CODE><FONT color=#0000ff>Nothing</FONT></CODE>, esriFTSimple, "Shape", "")<BR>  <BR>    <CODE><FONT color=#0000ff>Set</FONT></CODE> <FONT style="BACKGROUND-COLOR: #93a070" color=#ffffff>CreateShapefile</FONT> = pFClass<BR>  <CODE><FONT color=#0000ff>End If<BR>  <BR>    Exit Function</FONT></CODE><BR>CreateShape_ERR:<BR><CODE><FONT color=#0000ff>Debug.Print</FONT></CODE> "CreateShape_ERR: " ; Err.Description<BR>    <CODE><FONT color=#0000ff>Resume Next<BR>    <BR>End Function<BR></FONT></CODE></P>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
游客

返回顶部