xafreeman
路人甲
路人甲
  • 注册日期2003-08-04
  • 发帖数39
  • QQ
  • 铜币242枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1788回复:5

关于如何再mo中实现切图的功能

楼主#
更多 发布于:2004-09-18 11:50
<P>用mo实现如下功能:</P>
<P>在有很多图层的图中,随意画一个区域,可以将这个区域的图(全部图层)单独提取出来或者能导出,这样再次导入就可以看到所切区域的图。</P>
<P>大家能否提供一些思路参考?有例子就更好了!多谢</P>
喜欢0 评分0
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2004-09-18 13:04
<P>用鼠标选择一个区域,然后输出到文件中,控件不写出了,自己看看吧,vb+mo2。1</P><P>Option Explicit
Private m_recsSelected As MapObjects2.Recordset
Private sym As MapObjects2.Symbol</P><P>Private Sub Command1_Click()</P><P>On Error GoTo LayerLoadError</P><P>Dim dc As New MapObjects2.DataConnection
Dim mlyr As New MapObjects2.MapLayer</P><P>'User loads shapefile into map using CommonDialog.ShowOpen
Map1.Layers.Clear
cd.Filter = "Shapefiles (*.shp)|*.shp"
cd.ShowOpen
dc.Database = CurDir
dc.Connect
Set mlyr.GeoDataset = dc.FindGeoDataset(cd.FileTitle)
mlyr.Symbol.Color = moPaleYellow
Map1.Layers.Add mlyr</P><P>LayerLoadError:
End Sub</P><P>Private Sub Command2_Click()</P><P>Dim dc As New MapObjects2.DataConnection
Dim mlyr As New MapObjects2.MapLayer</P><P>If Not m_recsSelected Is Nothing Then
  If Map1.Layers.Count > 1 Then Map1.Layers.Remove 0
  cd.ShowSave
  m_recsSelected.Export cd.FileName
  dc.Database = CurDir
  dc.Connect
  Set mlyr.GeoDataset = dc.FindGeoDataset(cd.FileTitle)
  mlyr.Symbol.Color = moRed
  Set m_recsSelected = Nothing
  Map1.Layers.Add mlyr
End If
  
End Sub</P><P>Private Sub Form_Load()</P><P>Set sym = New MapObjects2.Symbol
With sym
.SymbolType = moFillSymbol
.Color = moGreen
End With</P><P>End Sub</P><P>Private Sub Map1_AfterTrackingLayerDraw(ByVal hDC As stdole.OLE_HANDLE)</P><P>If Not m_recsSelected Is Nothing Then
  Map1.DrawShape m_recsSelected, sym
End If</P><P>End Sub</P><P>Private Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)</P><P>Dim rect As MapObjects2.Rectangle</P><P>Set rect = Map1.TrackRectangle
Set m_recsSelected = Map1.Layers(Map1.Layers.Count - 1).SearchShape(rect, moAreaIntersect, "")
Map1.Refresh</P><P>End Sub
</P>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
xafreeman
路人甲
路人甲
  • 注册日期2003-08-04
  • 发帖数39
  • QQ
  • 铜币242枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-09-18 16:47
多谢斑竹!
举报 回复(0) 喜欢(0)     评分
lixaokui
路人甲
路人甲
  • 注册日期2003-12-25
  • 发帖数768
  • QQ28796446
  • 铜币27枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2004-09-19 11:32
<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" />
西门吹血,有了鼓风机,就不用吹啦!
举报 回复(0) 喜欢(0)     评分
ryx32
路人甲
路人甲
  • 注册日期2003-08-05
  • 发帖数457
  • QQ
  • 铜币4046枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2004-09-20 13:37
<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" />
举报 回复(0) 喜欢(0)     评分
spring20002
路人甲
路人甲
  • 注册日期2004-09-23
  • 发帖数86
  • QQ
  • 铜币286枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2004-09-24 13:11
<P>我建议用个对话框显示    用树控件显示查询结果,右键点击弹出菜单选择在列表框中显示当前记录的各属性值。</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部