|
阅读:1161回复:1
谁能帮我改一下用AO进行地图拼接的代码呀
<P>我找到了地图拼接的代码,我想把控件mapcontrol1和mapcontrol2中的图片拼接后显示在mapcontrol3中,用VB该怎么改呀?帮帮忙,谢谢。</P><PRE><CODE>Public Sub</CODE> Merge()
<CODE>' Get the first layer in the map</CODE> <CODE>Dim</CODE> pMxDoc <CODE>As</CODE> IMxDocument <CODE>Set</CODE> pMxDoc = ThisDocument <CODE>Dim</CODE> pLayer <CODE>As</CODE> ILayer <CODE>Set</CODE> pLayer = pMxDoc.FocusMap.Layer(0) <CODE>Dim</CODE> pFeatLayer <CODE>As</CODE> IFeatureLayer <CODE>Set</CODE> pFeatLayer = pLayer <CODE>Dim</CODE> pFirstFeatClass <CODE>As</CODE> IFeatureClass <CODE>Set</CODE> pFirstFeatClass = pFeatLayer.FeatureClass <CODE>' Get the first layer's table</CODE> <CODE>' Use the Itable interface from the Layer (not from the FeatureClass)</CODE> <CODE>' This table defines which fields are to be used in the output</CODE> <CODE>Dim</CODE> pFirstTable <CODE>As</CODE> ITable <CODE>Set</CODE> pFirstTable = pLayer <CODE>' Get the second layer and its table</CODE> <CODE>' Use the Itable interface from the Layer (not from the FeatureClass)</CODE> <CODE>Set</CODE> pLayer = pMxDoc.FocusMap.Layer(1) <CODE>Dim</CODE> pSecondTable <CODE>As</CODE> ITable <CODE>Set</CODE> pSecondTable = pLayer <CODE>' Error checking</CODE> <CODE>If</CODE> pFirstTable <CODE>Is Nothing Then</CODE> MsgBox "Table QI failed" <CODE>Exit Sub End If If</CODE> pSecondTable <CODE>Is Nothing Then</CODE> MsgBox "Table QI failed" <CODE>Exit Sub End If</CODE> <CODE>' Define the output feature class name and shape type</CODE> <CODE>Dim</CODE> pFeatClassName <CODE>As</CODE> IFeatureClassName <CODE>Set</CODE> pFeatClassName = <CODE>New</CODE> FeatureClassName <CODE>With</CODE> pFeatClassName .FeatureType = esriFTSimple .ShapeFieldName = "Shape" .ShapeType = pFirstFeatClass.ShapeType <CODE>End With</CODE> <CODE>' Set the output location and feature class name</CODE> <CODE>Dim</CODE> pNewWSName <CODE>As</CODE> IWorkspaceName <CODE>Set</CODE> pNewWSName = <CODE>New</CODE> WorkspaceName <CODE>With</CODE> pNewWSName .WorkspaceFactoryProgID = "esriCore.ShapefileWorkspaceFactory.1" .PathName = "C:\temp" <CODE>End With Dim</CODE> pDatasetName <CODE>As</CODE> IDatasetName <CODE>Set</CODE> pDatasetName = pFeatClassName pDatasetName.Name = "Merge_result" <CODE>Set</CODE> pDatasetName.WorkspaceName = pNewWSName <CODE>' Build the input set/array - these are the layers to be merged</CODE> <CODE>Dim</CODE> inputArray <CODE>As</CODE> IArray <CODE>Set</CODE> inputArray = <CODE>New</CODE> esriCore.Array inputArray.Add pFirstTable inputArray.Add pSecondTable <CODE>' Perform the merge</CODE> <CODE>Dim</CODE> pBGP <CODE>As</CODE> IBasicGeoprocessor <CODE>Set</CODE> pBGP = <CODE>New</CODE> BasicGeoprocessor <CODE>Dim</CODE> pOutputFeatClass <CODE>As</CODE> IFeatureClass <CODE>Set</CODE> pOutputFeatClass = pBGP.Merge(inputArray, pFirstTable, pFeatClassName) <CODE>' Add the output to the map</CODE> <CODE>Dim</CODE> pOutputFeatLayer <CODE>As</CODE> IFeatureLayer <CODE>Set</CODE> pOutputFeatLayer = <CODE>New</CODE> FeatureLayer <CODE>Set</CODE> pOutputFeatLayer.FeatureClass = pOutputFeatClass pOutputFeatLayer.Name = pOutputFeatClass.AliasName pMxDoc.FocusMap.AddLayer pOutputFeatLayer <CODE>End Sub</CODE> </PRE> [此贴子已经被作者于2004-5-19 10:46:39编辑过]
|
|
|
1楼#
发布于:2004-07-25 13:42
<img src="images/post/smile/dvbbs/em02.gif" />
|
|
|