private IElement Get3DElementAirplane(IElement element, IGeometry elementGeometry, ICurve curvePath, double markerSize) { if (string.IsNullOrEmpty(fileName3DElement)) { return(null); } // IElement element = new MarkerElement(); IMarker3DSymbol pMarker3DSymbol = new Marker3DSymbol(); pMarker3DSymbol.CreateFromFile(fileName3DElement); pMarker3DSymbol.UseMaterialDraping = true; //pMarker3DSymbol. IMarker3DPlacement pM3DP = (IMarker3DPlacement)pMarker3DSymbol; // pM3DP.Width = markerSize ; pM3DP.Units = esriUnits.esriMeters; pM3DP.Angle = GetAngle(curvePath); pM3DP.MaintainAspectRatio = true; pM3DP.Size = markerSize; //pM3DP.Width = 83; //pM3DP.Depth = 73; IGraphicTrackerSymbol gts = Elements2D.m_graphicTracker3D.CreateSymbol(null, pMarker3DSymbol as ISymbol); GlobalValues.id3D = Elements2D.m_graphicTracker3D.Add(elementGeometry, gts); ((IMarkerElement)element).Symbol = (IMarkerSymbol)pMarker3DSymbol; element.Geometry = (IPoint)elementGeometry; return(element); }
private IElement Get2DElementAirplane(IElement element, IGeometry elementGeometry, ICurve curvePath, double markerSize) { if (string.IsNullOrEmpty(fileName2DElement)) { return(null); } IMarkerElement markerElement; // IElement element = new MarkerElement(); markerElement = element as IMarkerElement; IColor rgbColor = GetRGBColor(255, 0, 0); IPictureMarkerSymbol pictureMarkerSymbol = new ESRI.ArcGIS.Display.PictureMarkerSymbol(); pictureMarkerSymbol.CreateMarkerSymbolFromFile(_pictureType, fileName2DElement); pictureMarkerSymbol.Angle = GetAngle(curvePath); pictureMarkerSymbol.BitmapTransparencyColor = rgbColor; pictureMarkerSymbol.Size = markerSize; pictureMarkerSymbol.XOffset = 0; pictureMarkerSymbol.YOffset = 0; IGraphicTrackerSymbol gts = Elements2D.m_graphicTracker2D.CreateSymbol(pictureMarkerSymbol as ISymbol, null); GlobalValues.id2D = Elements2D.m_graphicTracker2D.Add(elementGeometry, gts); markerElement.Symbol = pictureMarkerSymbol; element.Geometry = (IPoint)elementGeometry; return(element); }
void PopulateGraphicTracker() { m_graphicTracker.SuspendUpdate = true; foreach (DataRow row in m_weatherItemTable.Rows) { IGraphicTrackerSymbol symbol = GetSymbol(Convert.ToInt32(row[8]), Convert.ToString(row[7])); if (symbol == null) { continue; } string label = string.Format("{0}, {1}?F", Convert.ToString(row[2]), Convert.ToString(row[5])); m_point.PutCoords(Convert.ToDouble(row[4]), Convert.ToDouble(row[3])); int trackerID = m_graphicTracker.Add(m_point as IGeometry, symbol); m_graphicTracker.SetTextSymbol(trackerID, m_textSymbol); m_graphicTracker.SetScaleMode(trackerID, esriGTScale.esriGTScaleAuto); m_graphicTracker.SetOrientationMode(trackerID, esriGTOrientation.esriGTOrientationAutomatic); m_graphicTracker.SetElevationMode(trackerID, esriGTElevation.esriGTElevationClampToGround); m_graphicTracker.SetLabel(trackerID, label); row[15] = trackerID; row.AcceptChanges(); } m_graphicTracker.SuspendUpdate = false; }
public void UpdateTracker(WeatherItemEventArgs weatherItemInfo) { System.Diagnostics.Trace.WriteLine("UpdateTracker - Thread ID: " + System.Threading.Thread.CurrentThread.ManagedThreadId.ToString()); if (m_graphicTracker == null) { throw new Exception("Graphic tracker is not initialized!"); } // 1. lock the m_weatherItemTable and get the record DataRow row; lock (m_weatherItemTable) { row = m_weatherItemTable.Rows.Find(weatherItemInfo.ZipCode); if (row == null) { return; } // 2. get the symbol for the item IGraphicTrackerSymbol symbol = GetSymbol(weatherItemInfo.IconID, Convert.ToString(row[7])); if (symbol == null) { return; } string label = string.Format("{0}, {1}?F", Convert.ToString(row[2]), Convert.ToString(row[5])); // 3. check whether it has a tracker ID (not equals -1) int trackerID = Convert.ToInt32(row[15]); //m_graphicTracker.SuspendUpdate = true; m_point.PutCoords(weatherItemInfo.mapX, weatherItemInfo.mapY); m_point.SpatialReference = m_SRWGS84; m_point.Project(m_mapOrGlobe.SpatialReference); if (trackerID == -1) // new tracker { trackerID = m_graphicTracker.Add(m_point as IGeometry, symbol); m_graphicTracker.SetTextSymbol(trackerID, m_textSymbol); row[15] = trackerID; } else // existing tracker { m_graphicTracker.MoveTo(trackerID, m_point.X, m_point.Y, 0); m_graphicTracker.SetSymbol(trackerID, symbol); } m_graphicTracker.SetLabel(trackerID, label); row.AcceptChanges(); //m_graphicTracker.SuspendUpdate = false; } }
/// <summary> /// Initialize a character marker symbol for a given bitmap path /// </summary> /// <param name="iconPath"></param> /// <param name="iconWidth"></param> /// <param name="iconHeight"></param> /// <returns></returns> private IGraphicTrackerSymbol InitializeSymbol(string iconPath, out int iconWidth, out int iconHeight, out Bitmap bitmap) { iconWidth = iconHeight = 0; bitmap = null; try { //make sure that the icon exit on dist or else download it DownloadIcon(iconPath, out iconWidth, out iconHeight); string iconFileName = System.IO.Path.Combine(m_iconFolder, System.IO.Path.GetFileNameWithoutExtension(iconPath) + ".png"); if (!System.IO.File.Exists(iconFileName)) { return(null); } IGraphicTrackerSymbol symbol = m_graphicTracker.CreateSymbolFromPath(iconFileName, iconFileName); return(symbol); } catch { return(null); } }