public Form1() { try { InitializeComponent(); savePath = Path.Combine(path, "data\\road.geojson"); mapOperation = new MapOperation(axRenderControl1, i3dmPath); mapOperation.InitializationAxRenderControl(); axRenderControl1.RcObjectEditing += AxRenderControl1_RcObjectEditing; axRenderControl1.RcObjectEditFinish += AxRenderControl1_RcObjectEditFinish; axRenderControl1.RcMouseClickSelect += AxRenderControl1_RcMouseClickSelect; roadPoints = new RoadPoints { features = new List <Feature>() }; ReadGeoJson(); symbol = new SimplePointSymbolClass() { FillColor = 0xAA0000FF, Size = 10 }; offSetDis = Math.Sqrt(Math.Pow(xOffset, 2) + Math.Pow(yOffset, 2)); comboBox.SelectedIndex = 0; } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public DrawTool() { this._3DControl = DF3DApplication.Application.Current3DMapControl; if (this._3DControl != null) { if (this._3DControl.Terrain.IsRegistered && this._3DControl.Terrain.VisibleMask != gviViewportMask.gviViewNone) { this._heightStyle = gviHeightStyle.gviHeightOnTerrain; } else { this._heightStyle = gviHeightStyle.gviHeightAbsolute; } this._objectManager = this._3DControl.ObjectManager; this._geoFactory = new GeometryFactory(); this._curveSymbol = new CurveSymbol(); this._curveSymbol.Width = 0; this._curveSymbol.Color = Convert.ToUInt32(SystemInfo.Instance.LineColor, 16); this._surfaceSymbol = new SurfaceSymbol(); this._surfaceSymbol.Color = Convert.ToUInt32(SystemInfo.Instance.FillColor, 16); this._surfaceSymbol.BoundarySymbol = this._curveSymbol; this._simplePointSymbol = new SimplePointSymbol(); this._simplePointSymbol.FillColor = Convert.ToUInt32(SystemInfo.Instance.LineColor, 16); this._simplePointSymbol.OutlineColor = Convert.ToUInt32(SystemInfo.Instance.LineColor, 16); this._simplePointSymbol.Size = 10; this._simplePointSymbol.Style = gviSimplePointStyle.gviSimplePointCircle; this._rootID = this._3DControl.ProjectTree.RootID; } }
public static ISimplePointSymbol NewPtSymbol(uint color) { ISimplePointSymbol symbol = (SimplePointSymbol)Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("6669A2D9-BA75-4B24-BF75-D1120B790AE9"))); symbol.FillColor = color; symbol.Alignment = gviPivotAlignment.gviPivotAlignCenterCenter; symbol.Style = gviSimplePointStyle.gviSimplePointX; return(symbol); }
public void RenderTrajectory(List <Trajectory> traceInfos, uint pointColor = 0xAA90EE90, uint lineColor = 0xAA0CE6E5) { try { symbol = new SimplePointSymbolClass() { FillColor = pointColor, Size = 10 }; #region 创建线 IPoint point = _geoFactory.CreatePoint(i3dVertexAttribute.i3dVertexAttributeZ); IPolyline line = (IPolyline)_geoFactory.CreateGeometry(i3dGeometryType.i3dGeometryPolyline, i3dVertexAttribute.i3dVertexAttributeZ); line.SpatialCRS = _spatialCRS; foreach (Trajectory trajectory in traceInfos) { point.SetCoords(trajectory.LongitudeWgs84, trajectory.LatitudeWgs84, 1, 0, 0); point.SpatialCRS = _spatialCRS; line.AppendPoint(point); var rPoint = _axRenderControl.ObjectManager.CreateRenderPoint(point, symbol); rPoint.MaxVisibleDistance = 100000; rPoint.ViewingDistance = 500000; AppendGuidToStringBuilder(rPoint.Guid); } //lineColor = 0xFF0CE6E5; tracePolyline = _axRenderControl.ObjectManager.CreateRenderPolyline(line, new CurveSymbol { Color = lineColor, Width = -2 }); tracePolyline.VisibleMask = i3dViewportMask.i3dViewAllNormalView; tracePolyline.MaxVisibleDistance = 100000; tracePolyline.HeightStyle = i3dHeightStyle.i3dHeightAbsolute; AppendGuidToStringBuilder(tracePolyline.Guid); //_axRenderControl.Camera.FlyToObject(tracePolyline.Guid, i3dActionCode.i3dActionFollowAbove); #endregion } catch (Exception ex) { LoggerHelper.Logger.Error(ex, $"执行RenderTrajectory错误"); throw ex; } }
private void CreateRenderPoint(IPoint point) { if (gfactory == null) { gfactory = new GeometryFactory(); } fde_point = (IPoint)gfactory.CreateGeometry(i3dGeometryType.i3dGeometryPoint, i3dVertexAttribute.i3dVertexAttributeZ); fde_point.SpatialCRS = crs; fde_point.SetCoords(point.X, point.Y, point.Z, 0, 0); pointSymbol = new SimplePointSymbolClass(); pointSymbol.FillColor = 0xff0000ff; pointSymbol.Size = 10; rpoint = _axRenderControl.ObjectManager.CreateRenderPoint(fde_point, pointSymbol); _axRenderControl.Camera.FlyToObject(rpoint.Guid, i3dActionCode.i3dActionFlyTo); }
/// <summary> /// 轨迹回放 /// </summary> /// <param name="traceInfo">轨迹数据</param> /// <param name="speedTimes">回放倍数</param> /// <param name="traceChanged">轨迹是否改变</param> public void RenderVehicleTrajectory(IList <Trajectory> traceInfos, int speedTimes, bool traceChanged = true) { try { if (traceChanged) { if (traceDynamicObj == null) { traceDynamicObj = _axRenderControl.ObjectManager.CreateDynamicObject(); traceDynamicObj.AutoRepeat = false; traceDynamicObj.CrsWKT = WKT; traceDynamicObj.TurnSpeed = 300; AppendGuidToStringBuilder(traceDynamicObj.Guid); symbol = new SimplePointSymbolClass() { FillColor = 0xff0000ff, Size = 10 }; #region 创建线 IPoint point = _geoFactory.CreatePoint(i3dVertexAttribute.i3dVertexAttributeZ); IPolyline line = (IPolyline)_geoFactory.CreateGeometry(i3dGeometryType.i3dGeometryPolyline, i3dVertexAttribute.i3dVertexAttributeZ); line.SpatialCRS = _spatialCRS; foreach (Trajectory trajectory in traceInfos) { IVector3 position = new Vector3(); position.Set(trajectory.LongitudeWgs84, trajectory.LatitudeWgs84, 1); point.Position = position; point.SpatialCRS = _spatialCRS; line.AppendPoint(point); traceDynamicObj.AddWaypoint2(point, Convert.ToDouble(30 * speedTimes)); var rPoint = _axRenderControl.ObjectManager.CreateRenderPoint(point, symbol); rPoint.MaxVisibleDistance = 12500; rPoint.ViewingDistance = 50; AppendGuidToStringBuilder(rPoint.Guid); //_axRenderControl.Camera.FlyToObject(rPoint.Guid, i3dActionCode.i3dActionFollowBehindAndAbove); } tracePolyline = _axRenderControl.ObjectManager.CreateRenderPolyline(line, new CurveSymbol { Color = 0xFFFFFF00, Width = -2 }); tracePolyline.VisibleMask = i3dViewportMask.i3dViewAllNormalView; tracePolyline.MaxVisibleDistance = 12500; tracePolyline.HeightStyle = i3dHeightStyle.i3dHeightAbsolute; AppendGuidToStringBuilder(tracePolyline.Guid); #endregion } } else { if (traceDynamicObj == null) { return; } traceDynamicObj.Stop(); traceDynamicObj.TurnSpeed = 300 * speedTimes; for (int i = 0; i < traceInfos.Count; i++) { traceDynamicObj.GetWaypoint2(i, out IPoint point, out double speed); traceDynamicObj.ModifyWaypoint2(i, point, 30); } } TraceObjectsPlay("111", traceDynamicObj, true); } catch (Exception ex) { LoggerHelper.Logger.Error(ex, $"执行RenderVehicleTrajectory错误"); throw ex; } }
public PointRenderForm(IGeometryRender geoRender, object[] fieldNamesItems, bool isSimplePoint) { InitializeComponent(); IsSimplePoint = isSimplePoint; { this.comboBox1.Items.AddRange(fieldNamesItems); this.comboBox1.Text = ""; if (geoRender != null) { int index = Utils.getIndexFromItems(fieldNamesItems, geoRender.RenderGroupField); this.comboBox1.SelectedIndex = index; } } ISimpleGeometryRender render = geoRender as ISimpleGeometryRender; if (render == null) { if (isSimplePoint) { this.dataGridView1.Enabled = true; this.checkBox1.Enabled = false; this.textBoxPictureName.Enabled = false; this.textBoxPicturePath.Enabled = false; ISimplePointSymbol tmpSymbol = new SimplePointSymbol(); string[] row1 = new string[] { "Alignment", tmpSymbol.Alignment.ToString() }; string[] row2 = new string[] { "Size", tmpSymbol.Size.ToString() }; object[] rows = new object[] { row1, row2 }; foreach (string[] rowArray in rows) { this.dataGridView2.Rows.Add(rowArray); } string[] row11 = new string[] { "FillColor", tmpSymbol.FillColor.ToString() }; string[] row12 = new string[] { "Style", tmpSymbol.Style.ToString() }; object[] rows2 = new object[] { row11, row12 }; foreach (string[] rowArray in rows2) { this.dataGridView1.Rows.Add(rowArray); } return; } else { this.dataGridView1.Enabled = false; this.checkBox1.Enabled = true; this.textBoxPictureName.Enabled = true; IImagePointSymbol tmpSymbol = new ImagePointSymbol(); string[] row1 = new string[] { "Alignment", tmpSymbol.Alignment.ToString() }; string[] row2 = new string[] { "Size", tmpSymbol.Size.ToString() }; object[] rows = new object[] { row1, row2 }; foreach (string[] rowArray in rows) { this.dataGridView2.Rows.Add(rowArray); } this.textBoxPictureName.Text = ""; return; } } if (render.Symbol == null) { return; } if (isSimplePoint) { this.dataGridView1.Enabled = true; this.checkBox1.Enabled = false; this.textBoxPictureName.Enabled = false; this.textBoxPicturePath.Enabled = false; ISimplePointSymbol symbol = render.Symbol as ISimplePointSymbol; if (symbol != null) { string[] row1 = new string[] { "Alignment", symbol.Alignment.ToString() }; string[] row2 = new string[] { "Size", symbol.Size.ToString() }; object[] rows = new object[] { row1, row2 }; foreach (string[] rowArray in rows) { this.dataGridView2.Rows.Add(rowArray); } string[] row11 = new string[] { "FillColor", symbol.FillColor.ToString() }; string[] row12 = new string[] { "Style", symbol.Style.ToString() }; object[] rows2 = new object[] { row11, row12 }; foreach (string[] rowArray in rows2) { this.dataGridView1.Rows.Add(rowArray); } } else { ISimplePointSymbol tmpSymbol = new SimplePointSymbol(); string[] row1 = new string[] { "Alignment", tmpSymbol.Alignment.ToString() }; string[] row2 = new string[] { "Size", tmpSymbol.Size.ToString() }; object[] rows = new object[] { row1, row2 }; foreach (string[] rowArray in rows) { this.dataGridView2.Rows.Add(rowArray); } string[] row11 = new string[] { "FillColor", tmpSymbol.FillColor.ToString() }; string[] row12 = new string[] { "Style", tmpSymbol.Style.ToString() }; object[] rows2 = new object[] { row11, row12 }; foreach (string[] rowArray in rows2) { this.dataGridView1.Rows.Add(rowArray); } } } else { this.dataGridView1.Enabled = false; this.checkBox1.Enabled = true; this.textBoxPictureName.Enabled = true; IImagePointSymbol symbol = render.Symbol as IImagePointSymbol; if (symbol != null) { string[] row1 = new string[] { "Alignment", symbol.Alignment.ToString() }; string[] row2 = new string[] { "Size", symbol.Size.ToString() }; object[] rows = new object[] { row1, row2 }; foreach (string[] rowArray in rows) { this.dataGridView2.Rows.Add(rowArray); } this.textBoxPicturePath.Text = symbol.ImageName; this.textBoxPictureName.Text = symbol.ImageName; } else { IImagePointSymbol tmpSymbol = new ImagePointSymbol(); string[] row1 = new string[] { "Alignment", tmpSymbol.Alignment.ToString() }; string[] row2 = new string[] { "Size", tmpSymbol.Size.ToString() }; object[] rows = new object[] { row1, row2 }; foreach (string[] rowArray in rows) { this.dataGridView2.Rows.Add(rowArray); } this.textBoxPictureName.Text = ""; } } }
void axRenderControl1_RcMouseClickSelect(IPickResult PickResult, IPoint IntersectPoint, gviModKeyMask Mask, gviMouseSelectMode EventSender) { if (PickResult.Type == gviObjectType.gviObjectLabel) { ILabelPickResult tlpr = PickResult as ILabelPickResult; gviObjectType type = tlpr.Type; ILabel fl = tlpr.Label; MessageBox.Show("拾取到" + type + "类型,内容为" + fl.Text); } else if (PickResult.Type == gviObjectType.gviObjectRenderModelPoint) { IRenderModelPointPickResult tlpr = PickResult as IRenderModelPointPickResult; gviObjectType type = tlpr.Type; IRenderModelPoint fl = tlpr.ModelPoint; MessageBox.Show("拾取到" + type + "类型,模型名称为" + fl.ModelName); } else if (PickResult.Type == gviObjectType.gviObjectRenderPoint) { IRenderPointPickResult tlpr = PickResult as IRenderPointPickResult; gviObjectType type = tlpr.Type; IRenderPoint fl = tlpr.Point; MessageBox.Show("拾取到" + type + "类型,大小为" + fl.Symbol.Size); } else if (PickResult.Type == gviObjectType.gviObjectRenderPolyline) { IRenderPolylinePickResult tlpr = PickResult as IRenderPolylinePickResult; gviObjectType type = tlpr.Type; IRenderPolyline fl = tlpr.Polyline; MessageBox.Show("拾取到" + type + "类型,GUID为" + fl.Guid); } else if (PickResult.Type == gviObjectType.gviObjectRenderPolygon) { IRenderPolygonPickResult tlpr = PickResult as IRenderPolygonPickResult; gviObjectType type = tlpr.Type; IRenderPolygon fl = tlpr.Polygon; MessageBox.Show("拾取到" + type + "类型,GUID为" + fl.Guid); } else if (PickResult.Type == gviObjectType.gviObjectRenderPOI) { IRenderPOIPickResult tlpr = PickResult as IRenderPOIPickResult; gviObjectType type = tlpr.Type; IRenderPOI fl = tlpr.POI; MessageBox.Show("拾取到" + type + "类型,名称为" + ((IPOI)fl.GetFdeGeometry()).Name); } else if (PickResult.Type == gviObjectType.gviObjectTerrainRegularPolygon) { ITerrainRegularPolygonPickResult regPolygonPick = PickResult as ITerrainRegularPolygonPickResult; gviObjectType type = regPolygonPick.Type; ITerrainRegularPolygon regPolygon = regPolygonPick.TerrainRegularPolygon; MessageBox.Show("拾取到" + type + "类型,geometryCount为" + regPolygon.GetFdeGeometry().GeometryType); } else if (PickResult.Type == gviObjectType.gviObjectTerrainArrow) { ITerrainArrowPickResult arrowPickResult = PickResult as ITerrainArrowPickResult; gviObjectType type = arrowPickResult.Type; ITerrainArrow arrow = arrowPickResult.TerrainArrow; MessageBox.Show("拾取到" + type + "类型,geometryType" + arrow.GetFdeGeometry().GeometryType); } else if (PickResult.Type == gviObjectType.gviObjectReferencePlane) { switch (this.toolStripComboBoxObjectManager.Text) { case "CreateLabel": { label = this.axRenderControl1.ObjectManager.CreateLabel(rootId); label.Text = "我是testlabel"; label.Position = IntersectPoint; textSymbol = new TextSymbol(); textAttribute = new TextAttribute(); textAttribute.TextColor = System.Drawing.Color.Yellow; textAttribute.TextSize = 20; textAttribute.Underline = true; textAttribute.Font = "楷体"; textSymbol.TextAttribute = textAttribute; textSymbol.VerticalOffset = 10; textSymbol.DrawLine = true; textSymbol.MarginColor = System.Drawing.Color.Yellow; label.TextSymbol = textSymbol; this.axRenderControl1.Camera.FlyToObject(label.Guid, gviActionCode.gviActionFlyTo); } break; case "CreateRenderModelPoint": { if (gfactory == null) { gfactory = new GeometryFactory(); } string tmpOSGPath = (strMediaPath + @"\osg\Buildings\Apartment\Apartment.osg"); fde_modelpoint = gfactory.CreateGeometry(gviGeometryType.gviGeometryModelPoint, gviVertexAttribute.gviVertexAttributeZ) as IModelPoint; fde_modelpoint.SetCoords(IntersectPoint.X, IntersectPoint.Y, IntersectPoint.Z, 0, 0); fde_modelpoint.ModelName = tmpOSGPath; rmodelpoint = this.axRenderControl1.ObjectManager.CreateRenderModelPoint(fde_modelpoint, null, rootId); rmodelpoint.MaxVisibleDistance = double.MaxValue; rmodelpoint.MinVisiblePixels = 0; rmodelpoint.ShowOutline = checkShowOutline.Checked; IEulerAngle angle = new EulerAngle(); angle.Set(0, -20, 0); this.axRenderControl1.Camera.LookAt(IntersectPoint.Position, 100, angle); } break; case "CreateRenderPoint": { if (gfactory == null) { gfactory = new GeometryFactory(); } fde_point = (IPoint)gfactory.CreateGeometry(gviGeometryType.gviGeometryPoint, gviVertexAttribute.gviVertexAttributeZ); fde_point.SetCoords(IntersectPoint.X, IntersectPoint.Y, IntersectPoint.Z, 0, 0); pointSymbol = new SimplePointSymbol(); pointSymbol.FillColor = System.Drawing.Color.Red; pointSymbol.Size = 10; rpoint = this.axRenderControl1.ObjectManager.CreateRenderPoint(fde_point, pointSymbol, rootId); rpoint.ShowOutline = checkShowOutline.Checked; this.axRenderControl1.Camera.FlyToObject(rpoint.Guid, gviActionCode.gviActionFlyTo); } break; case "CreateRenderPolyline": { if (gfactory == null) { gfactory = new GeometryFactory(); } fde_polyline = (IPolyline)gfactory.CreateGeometry(gviGeometryType.gviGeometryPolyline, gviVertexAttribute.gviVertexAttributeZ); fde_point = (IPoint)gfactory.CreateGeometry(gviGeometryType.gviGeometryPoint, gviVertexAttribute.gviVertexAttributeZ); fde_point.SetCoords(IntersectPoint.X, IntersectPoint.Y, IntersectPoint.Z, 0, 0); fde_polyline.AppendPoint(fde_point); fde_point.SetCoords(IntersectPoint.X + 20, IntersectPoint.Y, IntersectPoint.Z, 0, 0); fde_polyline.AppendPoint(fde_point); fde_point.SetCoords(IntersectPoint.X + 20, IntersectPoint.Y + 20, IntersectPoint.Z, 0, 0); fde_polyline.AppendPoint(fde_point); fde_point.SetCoords(IntersectPoint.X + 20, IntersectPoint.Y + 20, IntersectPoint.Z + 20, 0, 0); fde_polyline.AppendPoint(fde_point); lineSymbol = new CurveSymbol(); lineSymbol.Color = System.Drawing.Color.Red; // 紫红色 rpolyline = this.axRenderControl1.ObjectManager.CreateRenderPolyline(fde_polyline, lineSymbol, rootId); rpolyline.ShowOutline = checkShowOutline.Checked; this.axRenderControl1.Camera.FlyToObject(rpolyline.Guid, gviActionCode.gviActionFlyTo); } break; case "CreateRenderPolygon": { if (gfactory == null) { gfactory = new GeometryFactory(); } fde_polygon = (IPolygon)gfactory.CreateGeometry(gviGeometryType.gviGeometryPolygon, gviVertexAttribute.gviVertexAttributeZ); fde_point = (IPoint)gfactory.CreateGeometry(gviGeometryType.gviGeometryPoint, gviVertexAttribute.gviVertexAttributeZ); fde_point.SetCoords(IntersectPoint.X, IntersectPoint.Y, IntersectPoint.Z, 0, 0); fde_polygon.ExteriorRing.AppendPoint(fde_point); fde_point.SetCoords(IntersectPoint.X + 10, IntersectPoint.Y, IntersectPoint.Z, 0, 0); fde_polygon.ExteriorRing.AppendPoint(fde_point); fde_point.SetCoords(IntersectPoint.X + 10, IntersectPoint.Y + 10, IntersectPoint.Z, 0, 0); fde_polygon.ExteriorRing.AppendPoint(fde_point); fde_point.SetCoords(IntersectPoint.X, IntersectPoint.Y + 10, IntersectPoint.Z, 0, 0); fde_polygon.ExteriorRing.AppendPoint(fde_point); surfaceSymbol = new SurfaceSymbol(); surfaceSymbol.Color = System.Drawing.Color.Blue; // 蓝色 rpolygon = this.axRenderControl1.ObjectManager.CreateRenderPolygon(fde_polygon, surfaceSymbol, rootId); rpolygon.ShowOutline = checkShowOutline.Checked; this.axRenderControl1.Camera.FlyToObject(rpolygon.Guid, gviActionCode.gviActionFlyTo); } break; case "CreateRenderPOI": { if (gfactory == null) { gfactory = new GeometryFactory(); } fde_poi = (IPOI)gfactory.CreateGeometry(gviGeometryType.gviGeometryPOI, gviVertexAttribute.gviVertexAttributeZ); fde_poi.SetCoords(IntersectPoint.X, IntersectPoint.Y, IntersectPoint.Z, 0, 0); fde_poi.ImageName = "#(1)"; fde_poi.Name = (++poiCount).ToString(); fde_poi.Size = 50; rpoi = this.axRenderControl1.ObjectManager.CreateRenderPOI(fde_poi); rpoi.ShowOutline = checkShowOutline.Checked; this.axRenderControl1.Camera.FlyToObject(rpoi.Guid, gviActionCode.gviActionFlyTo); } break; case "CreateFixedBillboard": { TextAttribute ta = new TextAttribute(); ta.TextSize = 10; ta.TextColor = System.Drawing.Color.Yellow; IImage image = null; IModel model = null; string imageName = ""; this.axRenderControl1.Utility.CreateFixedBillboard("I'm fixed billboard!", ta, 50, 100, true, out model, out image, out imageName); this.axRenderControl1.ObjectManager.AddModel("fixedModel", model); this.axRenderControl1.ObjectManager.AddImage(imageName, image); if (gfactory == null) { gfactory = new GeometryFactory(); } fde_modelpoint = gfactory.CreateGeometry(gviGeometryType.gviGeometryModelPoint, gviVertexAttribute.gviVertexAttributeZ) as IModelPoint; fde_modelpoint.SetCoords(IntersectPoint.X, IntersectPoint.Y, IntersectPoint.Z, 0, 0); fde_modelpoint.ModelName = "fixedModel"; rmodelpoint = this.axRenderControl1.ObjectManager.CreateRenderModelPoint(fde_modelpoint, null, rootId); rmodelpoint.MaxVisibleDistance = double.MaxValue; rmodelpoint.MinVisiblePixels = 0; rmodelpoint.ShowOutline = checkShowOutline.Checked; IEulerAngle angle = new EulerAngle(); angle.Set(0, -20, 0); this.axRenderControl1.Camera.LookAt(IntersectPoint.Position, 100, angle); } break; case "CreateRegularPolygon": { IPosition pos = new Position(); pos.X = IntersectPoint.X; pos.Y = IntersectPoint.Y; pos.Altitude = IntersectPoint.Z; ITerrainRegularPolygon regPolygon = this.axRenderControl1.ObjectManager.CreateRegularPolygon(pos, 10, 10, System.Drawing.Color.Red, System.Drawing.Color.White, rootId); this.axRenderControl1.Camera.FlyToObject(regPolygon.Guid, gviActionCode.gviActionFlyTo); } break; case "CreateArrow": { IPosition pos = new Position(); pos.X = IntersectPoint.X; pos.Y = IntersectPoint.Y; pos.Altitude = IntersectPoint.Z; ITerrainArrow regArrow = this.axRenderControl1.ObjectManager.CreateArrow(pos, 30, 4, System.Drawing.Color.Red, System.Drawing.Color.White, rootId); this.axRenderControl1.Camera.FlyToObject(regArrow.Guid, gviActionCode.gviActionFlyTo); } break; } } }