本文整理汇总了C#中ESRI.DrawMarker方法的典型用法代码示例。如果您正苦于以下问题:C# ESRI.DrawMarker方法的具体用法?C# ESRI.DrawMarker怎么用?C# ESRI.DrawMarker使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ESRI
的用法示例。
在下文中一共展示了ESRI.DrawMarker方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DrawDynamicLayer
//.........这里部分代码省略.........
if (!m_bDynamicGlyphsCreated)
{
this.CreateDynamicSymbols(m_dynamicGlyphFactory);
m_bDynamicGlyphsCreated = true;
}
double X, Y, heading;
int type;
//iterate through the layers' items
foreach (DataRow r in m_table.Rows)
{
if (r[1] is DBNull || r[2] is DBNull)
continue;
//get the item's coordinate, heading and type
X = Convert.ToDouble(r[1]);
Y = Convert.ToDouble(r[2]);
heading = Convert.ToDouble(r[5]);
type = Convert.ToInt32(r[6]);
//assign the items' coordinate to the cached point
m_point.PutCoords(X, Y);
//set the symbol's properties
switch (type)
{
case 0:
//set the heading of the current symbols' text
m_dynamicSymbolProps.set_Heading(esriDynamicSymbolType.esriDSymbolText, 0.0f);
m_dynamicSymbolProps.set_Heading(esriDynamicSymbolType.esriDSymbolMarker, 0.0f);
//set the symbol alignment so that it will align with the screen
m_dynamicSymbolProps.set_RotationAlignment(esriDynamicSymbolType.esriDSymbolMarker, esriDynamicSymbolRotationAlignment.esriDSRAScreen);
//set the text alignment so that it will also align with the screen
m_dynamicSymbolProps.set_RotationAlignment(esriDynamicSymbolType.esriDSymbolText, esriDynamicSymbolRotationAlignment.esriDSRAScreen);
//scale the item
m_dynamicSymbolProps.SetScale(esriDynamicSymbolType.esriDSymbolMarker, 0.8f, 0.8f);
//set the items' color (blue)
m_dynamicSymbolProps.SetColor(esriDynamicSymbolType.esriDSymbolMarker, 0.0f, 0.0f, 1.0f, 1.0f); // Blue
//assign the item's glyph to the dynamic-symbol
m_dynamicSymbolProps.set_DynamicGlyph(esriDynamicSymbolType.esriDSymbolMarker, m_markerGlyphs[0]);
//set the labels text glyph
m_dynamicSymbolProps.set_DynamicGlyph(esriDynamicSymbolType.esriDSymbolText, m_textGlyph);
//set the color of the text
m_dynamicSymbolProps.SetColor(esriDynamicSymbolType.esriDSymbolText, 1.0f, 1.0f, 0.0f, 1.0f); // Yellow
//draw the item as a compound marker. This means that you do not have to draw the items and their
//accompanying labels separately, and thus allow you to write less code as well as get better
//performance.
m_dynamicCompoundMarker.DrawCompoundMarker4
(m_point,
//"TOP",
//"BOTTOM",
"Item " + Convert.ToString(r[0]),
heading.ToString("###.##"),
m_point.X.ToString("###.#####"),
m_point.Y.ToString("###.#####"));
break;
case 1:
//set the heading of the current symbol
m_dynamicSymbolProps.set_Heading(esriDynamicSymbolType.esriDSymbolMarker, (float)heading);
//set the symbol alignment so that it will align with towards the symbol heading
m_dynamicSymbolProps.set_RotationAlignment(esriDynamicSymbolType.esriDSymbolMarker, esriDynamicSymbolRotationAlignment.esriDSRANorth);
m_dynamicSymbolProps.SetScale(esriDynamicSymbolType.esriDSymbolMarker, 1.0f, 1.0f);
m_dynamicSymbolProps.SetColor(esriDynamicSymbolType.esriDSymbolMarker, 0.0f, 1.0f, 0.6f, 1.0f); // GREEN
m_dynamicSymbolProps.set_DynamicGlyph(esriDynamicSymbolType.esriDSymbolMarker, m_markerGlyphs[1]);
//draw the current location
DynamicDisplay.DrawMarker(m_point);
break;
case 2:
//set the heading of the current symbol
m_dynamicSymbolProps.set_Heading(esriDynamicSymbolType.esriDSymbolMarker, (float)heading);
//set the symbol alignment so that it will align with towards the symbol heading
m_dynamicSymbolProps.set_RotationAlignment(esriDynamicSymbolType.esriDSymbolMarker, esriDynamicSymbolRotationAlignment.esriDSRANorth);
m_dynamicSymbolProps.SetScale(esriDynamicSymbolType.esriDSymbolMarker, 1.1f, 1.1f);
m_dynamicSymbolProps.SetColor(esriDynamicSymbolType.esriDSymbolMarker, 1.0f, 1.0f, 1.0f, 1.0f); // WHITE
m_dynamicSymbolProps.set_DynamicGlyph(esriDynamicSymbolType.esriDSymbolMarker, m_markerGlyphs[2]);
//draw the current location
DynamicDisplay.DrawMarker(m_point);
break;
}
}
// by setting immediate flag to false, we signal the dynamic display that the layer is current.
base.m_bIsImmediateDirty = false;
}
catch (Exception ex)
{
System.Diagnostics.Trace.WriteLine(ex.Message);
}
}