zhhy51
路人甲
路人甲
  • 注册日期2003-10-13
  • 发帖数80
  • QQ
  • 铜币189枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2244回复:4

图层标注

楼主#
更多 发布于:2004-06-17 14:07
如何在mapobject里面实现图层的标注?<img src="images/post/smile/dvbbs/em45.gif" />
喜欢0 评分0
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2004-06-17 14:41
<P>拷贝了一个例子,看看吧</P><P>Option Explicit
Dim mlyr As New MapObjects2.MapLayer
Dim fnt As New stdole.StdFont</P><P>Private Sub Command1_Click()</P><P>Dim lr As New MapObjects2.LabelRenderer
lr.Field = "strvalue"
Set lr.Symbol(0).Font = fnt
lr.Symbol(0).Height = 0.2
Set mlyr.Renderer = lr
Map1.Refresh</P><P>End Sub</P><P>Private Sub Command2_Click()</P><P>Dim lr As New MapObjects2.LabelRenderer
lr.Field = "strvalue"
Set lr.Symbol(0).Font = fnt
Set mlyr.Renderer = lr
Map1.Refresh</P><P>End Sub</P><P>Private Sub Command3_Click()</P><P>Set mlyr.Renderer = Nothing
Set Map1.Extent = Map1.FullExtent</P><P>End Sub</P><P>Private Sub Command4_Click()</P><P>Dim lp As New MapObjects2.LabelPlacer
lp.Field = "strvalue"
Set lp.DefaultSymbol.Font = fnt
lp.DefaultSymbol.Height = 0.2
Set mlyr.Renderer = lp
Map1.Refresh</P><P>End Sub</P><P>Private Sub Command5_Click()</P><P>Dim lp As New MapObjects2.LabelPlacer
lp.Field = "strvalue"
Set lp.DefaultSymbol.Font = fnt
Set mlyr.Renderer = lp
Map1.Refresh</P><P>End Sub</P><P>Private Sub Command6_Click()</P><P>Set Map1.Extent = Map1.FullExtent</P><P>End Sub</P><P>Private Sub Form_Load()</P><P>'Load shapefile as new layer
Dim dc As New MapObjects2.DataConnection
dc.Database = App.Path
dc.Connect
Set mlyr.GeoDataset = dc.FindGeoDataset("hundred2")
mlyr.Symbol.Color = moLightGray
Map1.Layers.Add mlyr</P><P>'Zoom out a bit
Dim rect As MapObjects2.Rectangle
Set rect = Map1.FullExtent
rect.ScaleRectangle 1.1
Set Map1.FullExtent = rect
Set Map1.Extent = rect</P><P>'Font
With fnt
  .Name = "Arial"
  .Size = 12
End With</P><P>End Sub</P><P>Private Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)</P><P>If Shift = 0 Then
  If Button = 1 Then
   Set Map1.Extent = Map1.TrackRectangle
    Else
     Map1.Pan
  End If
 Else
  If Button = 1 Then
    Dim rect As MapObjects2.Rectangle
     Set rect = Map1.Extent
     rect.ScaleRectangle (1.2)
     Set Map1.Extent = rect
   Else
     Set Map1.Extent = Map1.FullExtent
  End If
End If</P><P>End Sub</P><P>去<a href="http://www.gisempire.com/data" target="_blank" >www.gisempire.com/data</A>,里面的资料比较详细,可以看看</P>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
zhhy51
路人甲
路人甲
  • 注册日期2003-10-13
  • 发帖数80
  • QQ
  • 铜币189枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-06-18 09:02
<P>谢谢总统</P>
举报 回复(0) 喜欢(0)     评分
ryx32
路人甲
路人甲
  • 注册日期2003-08-05
  • 发帖数457
  • QQ
  • 铜币4046枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2004-07-09 13:16
学习一下
举报 回复(0) 喜欢(0)     评分
WANGQI1
路人甲
路人甲
  • 注册日期2004-07-08
  • 发帖数54
  • QQ
  • 铜币142枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2004-08-02 17:31
<P>不错两种标文字的(LabelRender)(LabelPlacer
)方法都举例了,</P><img src="images/post/smile/dvbbs/em02.gif" />
举报 回复(0) 喜欢(0)     评分
游客

返回顶部