zyj_iim
路人甲
路人甲
  • 注册日期2003-12-06
  • 发帖数137
  • QQ
  • 铜币264枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1830回复:2

在一个Map1中,如何同时显示多个图层?

楼主#
更多 发布于:2004-01-04 09:54
在一个Map1中加载两个图层(pat文件),如何使他们同时显示(可为不同颜色)?
喜欢0 评分0
gis1117
  • 注册日期
  • 发帖数
  • QQ
  • 铜币
  • 威望
  • 贡献值
  • 银元
1楼#
发布于:2004-01-04 14:49
直接加载就会自动赋予不同滴颜色的,也可以自己设定
举报 回复(0) 喜欢(0)     评分
zyj_iim
路人甲
路人甲
  • 注册日期2003-12-06
  • 发帖数137
  • QQ
  • 铜币264枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-01-04 15:36
但是上面的颜色覆盖了下面的图层的颜色,下面的图层根本看不见。如何?
举报 回复(0) 喜欢(0)     评分
gis1117
  • 注册日期
  • 发帖数
  • QQ
  • 铜币
  • 威望
  • 贡献值
  • 银元
3楼#
发布于:2004-01-04 21:11
如果是透明的话那就是无色吧?呵呵,在mo可以设置透明
举报 回复(0) 喜欢(0)     评分
zyj_iim
路人甲
路人甲
  • 注册日期2003-12-06
  • 发帖数137
  • QQ
  • 铜币264枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2004-01-05 15:07
不能同时显示两个图层,请教应如何修改?
我是想加载两个图层,其中下面的一个图层完整显示,而上面的图层只显示轮廓(比如:下面是该市的人口分布图层,上面是该市的行政区划,终端用户便可知某行政区划的人口是多少了)。如何实现?

(pat 文件)

请阅读下面的代码:结果还是不能同时显示两个图层,请教应如何修改?


'显示地理数据
Set conn = New ADODB.Connection
conn.Open "dsn=agrogis"
Set rs = New ADODB.Recordset
Dim I
lyr.Symbol.Style = moSolidFill
dc.Database = "[ARC]D:\agrgis\maps\gsfxdx"
If dc.Connect Then
Set lyr.GeoDataset = dc.FindGeoDataset("DX0301.PAT")
Map1.Layers.Add lyr
Else
MsgBox "Connection failed"
End If
Set lyr = Map1.Layers("DX0301.PAT")
Set lyr.Renderer = New valueMapRenderer
lyr.Renderer.SymbolType = moFillSymbol
lyr.Renderer.Field = "value"
' set the values
rs.Open "select Name,RR,GG,BB from 地形", conn, adOpenStatic, adLockOptimistic
lyr.Renderer.valueCount = rs.RecordCount
rs.MoveFirst
For I = 0 To lyr.Renderer.valueCount - 2
lyr.Renderer.value(I) = rs!Name
rs.MoveNext

Next I
rs.MoveLast
lyr.Renderer.value(lyr.Renderer.valueCount - 1) = rs!Name
rs.MoveFirst
For I = 0 To lyr.Renderer.valueCount - 2
lyr.Renderer.Symbol(I).Color = RGB(rs!RR, rs!GG, rs!BB)
rs.MoveNext

Next I
rs.MoveLast
lyr.Renderer.Symbol(lyr.Renderer.valueCount - 1).Color = RGB(rs!RR, rs!GG, rs!BB)
rs.Close
Set rs = Nothing


'显示行政区划

Dim sym
dc.Database = "[ARC]D:\agrgis\maps\GSFXXJ"
If Not dc.Connect Then End
Set lyr.GeoDataset = dc.FindGeoDataset("XJ0301.pat")
Map1.Layers.Add lyr
Set lyr = Map1.Layers("XJ0301.pat")
lyr.Symbol.Style = moTransparentFill
lyr.Symbol.OutlineColor = moRed
Set lyr.Renderer = New LabelRenderer
lyr.Renderer.Field = "NAME"



[此贴子已经被作者于2004-1-5 15:12:47编辑过]
举报 回复(0) 喜欢(0)     评分
gis1117
  • 注册日期
  • 发帖数
  • QQ
  • 铜币
  • 威望
  • 贡献值
  • 银元
5楼#
发布于:2004-01-05 16:09
怎么会不能?只要设置为透明就行,好象没什么问题
lyr.Symbol.Outline = True
lyr.Symbol.Style = moTransparentFill
lyr.Symbol.size = 1
lyr.Symbol.OutlineColor = RGB(177, 222, 120)
举报 回复(0) 喜欢(0)     评分
游客

返回顶部