//跳到指定的经纬度
private void gotoXY(double X,double Y)
{
IPoint pCenter = new PointClass();
pCenter.X = X;
pCenter.Y = Y;
IEnvelope envelope = axMapControl1.Extent;
//envelope.Width = 0.16; //指定显示范围
//envelope.Height = 0.12;
//envelope.PutCoords(117.47, 33.85, 117.63, 33.73);
envelope.CenterAt(pCenter);
axMapControl1.Extent = envelope;
}
//添加标注
public static void AddAnnotate(ILayer layer, string fieldName)
{
IGeoFeatureLayer pGeoLayer = layer as IGeoFeatureLayer;
IAnnotateLayerPropertiesCollection IPALPColl = pGeoLayer.AnnotationProperties;
IPALPColl.Clear();
IRgbColor pColor = new RgbColorClass()
{
Red = 255,
Blue = 0,
Green = 0
};
IFontDisp pFont = new StdFont() //using stdole
{
Name = "宋体",
Bold = true
} as IFontDisp;
ITextSymbol pTextSymbol = new TextSymbolClass()
{
Color = pColor,
Font = pFont,
Size = 12
};
//用来控制标注和要素的相对位置关系
ILineLabelPosition pLineLpos = new LineLabelPositionClass()
{
Parallel = false, //修改标注的属性
Perpendicular = true,
InLine = true
};
//用来控制标注冲突
ILineLabelPlacementPriorities pLinePlace = new LineLabelPlacementPrioritiesClass()
{
AboveStart = 5, //让above 和start的优先级为5
BelowAfter = 4
};
//用来实现对ILineLabelPosition 和 ILineLabelPlacementPriorities以及更高级属性的控制
IBasicOverposterLayerProperties pBOLP = new BasicOverposterLayerPropertiesClass()
{
FeatureType = esriBasicOverposterFeatureType.esriOverposterPolygon,
LineLabelPlacementPriorities = pLinePlace,
LineLabelPosition = pLineLpos
};
//创建标注对象
ILabelEngineLayerProperties pLableEngine = new LabelEngineLayerPropertiesClass()
{
Symbol = pTextSymbol,
BasicOverposterLayerProperties = pBOLP,
IsExpressionSimple = true,
Expression = "[" + fieldName + "]"
};
//设置标注的参考比例尺
IAnnotateLayerTransformationProperties pAnnoLyrPros = pLableEngine as IAnnotateLayerTransformationProperties;
pAnnoLyrPros.ReferenceScale = 2500000;
//设置标注可见的最大最小比例尺
IAnnotateLayerProperties pAnnoPros = pLableEngine as IAnnotateLayerProperties;
pAnnoPros.AnnotationMaximumScale = 10000;
pAnnoPros.AnnotationMinimumScale = 500000;
//pAnnoPros.WhereClause属性 设置过滤条件
IPALPColl.Add(pAnnoPros);
pGeoLayer.DisplayAnnotation = true;
}
我的计算机安装的是Arcgis10 的AE runtime。判断代码具体如下:
private void CheckInStallAERuntime()
{
Microsoft.Win32.RegistryKey LocalMachineRegKey = Microsoft.Win32.Registry.LocalMachine;
Microsoft.Win32.RegistryKey InstallDirRegKey = LocalMachineRegKey.OpenSubKey(@"SOFTWARE\ESRI\Engine10.0\CoreRuntime");
if (InstallDirRegKey == null)
{
MessageBox.Show("没有安装ArcGIS Runtime!");
}
else
{
string InstallDirStr = InstallDirRegKey.GetValue("InstallDir").ToString();
MessageBox.Show("ArcGIS Runtime安装在了如下目录:" + InstallDirStr);
}
}