gjianguo
路人甲
路人甲
  • 注册日期2004-08-13
  • 发帖数9
  • QQ
  • 铜币146枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1229回复:1

请教AE 中3D高人指点几个问题!!

楼主#
更多 发布于:2004-10-13 10:13
<FONT size=3>
<P ><FONT face="Times New Roman"><v:group> <lock aspectratio="t" v:ext="edit"></lock><v:shapetype><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path connecttype="rect" gradientshapeok="t" extrusionok="f"></v:path><lock aspectratio="t" v:ext="edit"></lock></v:shapetype><v:shape><v:fill detectmouseclick="t"></v:fill><v:path connecttype="none" extrusionok="t"></v:path><lock v:ext="edit" text="t"></lock></v:shape><v:shape><v:fill color2="#09c"></v:fill><v:imagedata></v:imagedata><v:shadow color="#369"></v:shadow></v:shape><v:line><v:stroke endarrow="block"></v:stroke><v:shadow color="#369"></v:shadow></v:line><v:shape><v:fill color2="#09c"></v:fill><v:imagedata></v:imagedata><v:shadow color="#369"></v:shadow></v:shape><w:wrap type="none"></w:wrap><w:anchorlock></w:anchorlock></v:group></FONT></P>
<P ><FONT face="Times New Roman"></FONT> </P>
<P ><FONT face="Times New Roman"></FONT> </P>
<P ><FONT face="Times New Roman"></FONT> </P>
<P ><FONT face="Times New Roman"></FONT> </P>
<P ><FONT face="Times New Roman"></FONT> </P>
<P ><FONT face="Times New Roman">1.<FONT size=3>       </FONT></FONT>怎样在<FONT face="Times New Roman">Arcgis Engine </FONT>中如何实现调整<FONT face="Times New Roman">featurelayer</FONT>的基准高度<FONT face="Times New Roman">?</FONT>如上图所示</P>
<P ><FONT face="Times New Roman">2.<FONT size=3>       </FONT></FONT>在<FONT face="Times New Roman">Arcgis Engine </FONT>中有设置<FONT face="Times New Roman">FeatureLayer</FONT>拉伸的函数</P><PRE><FONT face=宋体>Public Sub SetLayerExtrusionString(sLayer, sExtrusionExpression As String)</FONT></PRE><PRE><FONT face=宋体>   On Error GoTo err</FONT></PRE><PRE><FONT face=宋体>    If Not TypeOf Application Is ISxApplication Then Exit Sub</FONT></PRE><PRE><FONT face=宋体>    </FONT></PRE><PRE><FONT face=宋体>'   in ArcScene VBA...</FONT></PRE><PRE><FONT face=宋体>'   get the document</FONT></PRE><PRE><FONT face=宋体>    Dim pSxDoc As ISxDocument</FONT></PRE><PRE><FONT face=宋体>    Set pSxDoc = Application.Document</FONT></PRE><PRE><FONT face=宋体>    </FONT></PRE><PRE><FONT face=宋体>'   get the Scene from the Document:</FONT></PRE><PRE><FONT face=宋体>    Dim pScene As IScene</FONT></PRE><PRE><FONT face=宋体>    Set pScene = pSxDoc.Scene</FONT></PRE><PRE><FONT face=宋体>    </FONT></PRE><PRE><FONT face=宋体>'   get the layer in the scene:</FONT></PRE><PRE><FONT face=宋体>    Dim pLayer As ILayer</FONT></PRE><PRE><FONT face=宋体>    Set pLayer = GetLayer(sLayer)   </FONT></PRE><PRE><FONT face=宋体>    </FONT></PRE><PRE><FONT face=宋体>'   get layer extensions:</FONT></PRE><PRE><FONT face=宋体>    Dim pLayerExts As ILayerExtensions</FONT></PRE><PRE><FONT face=宋体>    Set pLayerExts = pLayer</FONT></PRE><PRE><FONT face=宋体>    </FONT></PRE><PRE><FONT face=宋体>'   get the 3D properties from extension:</FONT></PRE><PRE><FONT face=宋体>'   layer must have it if it is in scene:</FONT></PRE><PRE><FONT face=宋体>    Dim i As Long</FONT></PRE><PRE><FONT face=宋体>    For i = 0 To pLayerExts.ExtensionCount - 1</FONT></PRE><PRE><FONT face=宋体>        Dim p3DProps As I3DProperties</FONT></PRE><PRE><FONT face=宋体>        Set p3DProps = pLayerExts.Extension(i)</FONT></PRE><PRE><FONT face=宋体>        If (Not p3DProps Is Nothing) Then</FONT></PRE><PRE><FONT face=宋体>            Exit For</FONT></PRE><PRE><FONT face=宋体>        End If</FONT></PRE><PRE><FONT face=宋体>    Next</FONT></PRE><PRE><FONT face=宋体>    p3DProps.ExtrusionExpressionString = sExtrusionExpression</FONT></PRE><PRE><FONT face=宋体>    p3DProps.ExtrusionType = esriExtrusionMinZ</FONT></PRE><PRE><FONT face=宋体>    </FONT></PRE><PRE><FONT face=宋体>'   Tell the scene graph to invalidate the layer and redraw:</FONT></PRE><PRE><FONT face=宋体>    Dim pSG As ISceneGraph</FONT></PRE><PRE><FONT face=宋体>    Set pSG = pScene.SceneGraph</FONT></PRE><PRE><FONT face=宋体>    pSG.Invalidate pLayer, True, True</FONT></PRE><PRE><FONT face=宋体>    pSG.RefreshViewers</FONT></PRE><PRE><FONT face=宋体>    </FONT></PRE><PRE><FONT face=宋体>    Exit Sub</FONT></PRE><PRE><FONT face=宋体>    </FONT></PRE><PRE><FONT face=宋体>err:</FONT></PRE><PRE><FONT face=宋体>End Sub</FONT></PRE>
<P ><p><FONT face="Times New Roman"> </FONT></p></P>
<P >我想问下怎样实现一个把一个<FONT face="Times New Roman">featurelayer</FONT>中某个字段如要拉伸的值关联起来<FONT face="Times New Roman">!? </FONT>即<FONT face="Times New Roman">sExtrusionExpression </FONT>这个变量是不是就是<FONT face="Times New Roman">featurelayer</FONT>的字段值<FONT face="Times New Roman">!!</FONT></P>
<P ><FONT face="Times New Roman">3.<FONT size=3>       </FONT></FONT>为什么一个<FONT face="Times New Roman">layer</FONT>有多个<FONT face="Times New Roman">extension?</FONT></P>
<P ><p><FONT face="Times New Roman"> </FONT></p></P>
<P ></FONT> </P>
喜欢0 评分0
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2004-10-13 10:19
<P>你可以去arcscripts.esri.com看一个arcmap 3d viewer的例子,他演示了如何改变基准高度</P><P>关联的例子在帮助里有了,你可以look look</P>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
游客

返回顶部