阅读:1229回复:1
请教AE 中3D高人指点几个问题!!
<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> |
|
1楼#
发布于:2004-10-13 10:19
<P>你可以去arcscripts.esri.com看一个arcmap 3d viewer的例子,他演示了如何改变基准高度</P><P>关联的例子在帮助里有了,你可以look look</P>
|
|
|