|
阅读:1135回复:1
画线vb->vc?
<P>'以下代码逍遥书生原创,(请保留版权信息),不知哪高手可以把它进行VB->VC的转换,非常急用代码,谢谢!<IMG src="http://www.gisempire.com/bbs/Skins/Default/emot/em02.gif"><BR>Private Sub Form_Load()<BR><BR>Dim new_line As New MapObjects2.Line<BR>Dim pts As New MapObjects2.Points<BR>Dim pt As New MapObjects2.Point<BR><BR><BR>'*****添加新的图层*****<BR> Dim pSaveConnect As New MapObjects2.DataConnection<BR> Dim pSaveShape As New MapObjects2.MapLayer<BR> Dim pSaveRecs As New MapObjects2.Recordset '新的实体集<BR> Dim pJsField As Object<BR> <BR> pSaveConnect.Database = App.Path<BR> If Not pSaveConnect.Connect Then Exit Sub<BR> '获取数据库结构<BR> Set JsFields = CreateFields<BR> pSaveShape.GeoDataset = pSaveConnect.AddGeoDataset("Test", moShapeTypeLine, JsFields)<BR> <BR> Set pSaveRecs = pSaveShape.Records<BR> pSaveRecs.AutoFlush = False</P>
<P> pSaveRecs.AddNew<BR> '做循环,读取数据</P> <P> pt.X = 100<BR> pt.Y = 100<BR> pts.Add pt<BR> <BR> pt.X = 200<BR> pt.Y = 200<BR> pts.Add pt<BR> <BR> pt.X = 300<BR> pt.Y = 300<BR> pts.Add pt</P> <P> new_line.Parts.Add pts</P> <P> Set pSaveRecs.Fields("Shape").Value = new_line<BR> pSaveRecs.Update<BR> Set pFwRecs = Nothing<BR> Set pSelectOne = Nothing<BR> pSaveRecs.StopEditing<BR> <BR> <BR> Map1.Layers.Add pSaveShape<BR> pSaveConnect.Disconnect<BR> Map1.Refresh<BR> <BR>End Sub<BR>Function CreateFields() As TableDesc<BR> Dim NameCol As New Collection<BR> Dim TypeCol As New Collection<BR> Dim LengthCol As New Collection<BR> Dim ScaleCol As New Collection<BR> <BR> NameCol.Add "DM"<BR> TypeCol.Add moString<BR> LengthCol.Add 6<BR> ScaleCol.Add 0<BR> <BR> <BR> <BR> NameCol.Add "X"<BR> TypeCol.Add moDouble<BR> LengthCol.Add 8<BR> ScaleCol.Add 3<BR> <BR> NameCol.Add "Y"<BR> TypeCol.Add moDouble<BR> LengthCol.Add 4<BR> ScaleCol.Add 1<BR> <BR> Set CreateFields = CreateShpFields(NameCol, TypeCol, LengthCol, ScaleCol)</P> <P>End Function<BR>Function CreateShpFields(inNameCol As Collection, inTypeCol As Collection, inLengthCol As Collection, inScale As Collection) As TableDesc<BR> Dim pFields As New TableDesc<BR> Dim i As Integer<BR> pFields.FieldCount = inNameCol.Count<BR> For i = 0 To inNameCol.Count - 1<BR> pFields.FieldName(i) = inNameCol.Item(i + 1)<BR> <BR> Select Case inTypeCol.Item(i + 1)<BR> Case 0<BR> pFields.FieldType(i) = Val(inTypeCol.Item(i + 1))<BR> Case 3 'long<BR> pFields.FieldType(i) = Val(inTypeCol.Item(i + 1))<BR> pFields.FieldPrecision(i) = inLengthCol.Item(i + 1)<BR> Case 5 'moDouble<BR> pFields.FieldType(i) = Val(inTypeCol.Item(i + 1))<BR> pFields.FieldPrecision(i) = inLengthCol.Item(i + 1)<BR> pFields.FieldScale(i) = inScale.Item(i + 1)<BR> Case 7 'Date<BR> pFields.FieldType(i) = Val(inTypeCol.Item(i + 1))<BR> pFields.FieldPrecision(i) = 8<BR> Case 8 'String<BR> pFields.FieldType(i) = Val(inTypeCol.Item(i + 1))<BR> pFields.FieldLength(i) = inLengthCol.Item(i + 1)<BR> Case 11 'Boolean<BR> pFields.FieldType(i) = Val(inTypeCol.Item(i + 1))<BR> <BR> End Select<BR> Next i<BR> <BR> Set CreateShpFields = pFields<BR>End Function</P><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" /> |
|
|
1楼#
发布于:2005-09-01 15:04
<P><a href="http://gisempire.com/bbs/dispbbs.asp?BoardID=39;ID=15215;replyID=;skin=1" target="_blank" >http://gisempire.com/bbs/dispbbs.asp?BoardID=39;ID=15215;replyID=;skin=1</A></P>
<P>搜索下以前的贴了,很久没做这个,看来帮你转不了</P><img src="images/post/smile/dvbbs/em02.gif" /> |
|
|