#region 获取所有权限视频点加载到图层
private void MonitorpointInfo()
{
#region 测试数据
//foreach (MapService.MonitorModel objMonitor in lisMonitor)
//{
// if ((objMonitor.X != null || objMonitor.X != "") && (objMonitor.Y != null || objMonitor.Y != ""))
// {
// }
//}
//MonitorModel objM1=new MonitorModel()
//{
// X = 98318.3584436682,
// Y = 3498207.6618042
//};
//MonitorModel objM2 = new MonitorModel()
//{
// X = 98328.3584436682,
// Y = 3498207.6618042
//};
//MonitorModel objM3 = new MonitorModel()
//{
// X = 98338.3584436682,
// Y = 3498207.6618042
//};
//lisMonitor.Add(objM1);
//lisMonitor.Add(objM2);
//lisMonitor.Add(objM3);
#endregion
// 单个视频点
ESRI.ArcGIS.Client.Graphic graphic = null;
// 为了使视频点能够随着地图比例的变化改变使用面
ESRI.ArcGIS.Client.Geometry.MapPoint mapPointVideo = null;
for (int i = 0; i < lisMonitor.Count; i++)
{
MapService.MonitorModel objMM = lisMonitor[i];
if ((objMM.X != null && objMM.X != "") && (objMM.Y != null && objMM.Y != ""))
{
mapPointVideo = new MapPoint(double.Parse(objMM.X), double.Parse(objMM.Y));
graphic = new ESRI.ArcGIS.Client.Graphic()
{
Geometry = mapPointVideo,
Symbol = this.LayoutRoot.Resources["DefaultPictureSymbol"] as ESRI.ArcGIS.Client.Symbols.Symbol
};
graphic.Attributes.Add("MonitorId", objMM.MonitorId);
graphic.Attributes.Add("Address", objMM.Address);
graphic.Attributes.Add("GroupId", objMM.GroupId);
graphic.Attributes.Add("Memo", objMM.Memo);
graphic.Attributes.Add("MonitorCode", objMM.MonitorCode);
graphic.Attributes.Add("MonitorGuid", objMM.MonitorGuid);
graphic.Attributes.Add("MonitorIp", objMM.MonitorIp);
graphic.Attributes.Add("MonitorUrl", objMM.MonitorUrl);
graphic.Attributes.Add("MonitorName", objMM.MonitorName);
graphic.Attributes.Add("X", objMM.X);
graphic.Attributes.Add("Y", objMM.Y);
graphic.Attributes.Add("Towns", objMM.Towns);
graphic.Attributes.Add("MonitorPort", objMM.MonitorPort);
graphic.Attributes.Add("UserCode", objMM.UserCode);
graphic.Attributes.Add("PassWord", objMM.PassWord);
//string strid = objgraphic.Attributes["ID"].ToString();
// 构建提示信息
FrameworkElement mapTipElement = GetMapTipInfo(objMM);
if (mapTipElement != null)
{
graphic.MapTip = mapTipElement;
graphic.MapTip.Opacity = 1;
}
featureLayerMonitor.Graphics.Add(graphic);
}
else
{
lisMonitor.RemoveAt(i);
i--;
}
}
// 设置其聚簇显示
FlareClusterer myflareClusterer = new FlareClusterer();
//设置背景色
myflareClusterer.FlareBackground = new SolidColorBrush(Colors.Orange);
//设置前景色
myflareClusterer.FlareForeground = new SolidColorBrush() { Color = Color.FromArgb(99, 0, 0, 0) };
// 设置以像素为单位的聚集半径
myflareClusterer.Radius = 20;
// 聚集的最大个数,超过则用大聚集设置Gradient
myflareClusterer.MaximumFlareCount = 30;
featureLayerMonitor.Clusterer = myflareClusterer;
this.CurrentMap.Layers.Add(featureLayerMonitor);
}
#endregion
/获取点的属性信息
case SilverlightMap.MainPage.ToolType.EditMonitor:
Envelope envelope2 = e.Geometry as Envelope;
MapPoint mapPoint11 = new MapPoint(envelope2.Extent.XMax, envelope2.Extent.YMax);
MapPoint mapPoint12 = new MapPoint(envelope2.Extent.XMin, envelope2.Extent.YMin);
GeneralTransform generalTran1 = objCurrentMap.TransformToVisual(App.Current.RootVisual);
Point point11 = generalTran1.Transform(objCurrentMap.MapToScreen(mapPoint11));
Point point12 = generalTran1.Transform(objCurrentMap.MapToScreen(mapPoint12));
Rect selrect = new Rect(point11, point12);
GraphicsLayer gralayer1 = objCurrentMap.Layers["FEATURELAYERMONITOR"] as GraphicsLayer;
IEnumerable<Graphic> graphicList1 = gralayer1.FindGraphicsInHostCoordinates(selrect);
if (graphicList1.Count() != 1 )
{
MessageBox.Show("请选中一个视频点,再进行编辑!", "修改视频点", MessageBoxButton.OK);
break;
}
foreach (Graphic objgraphic in graphicList1)
{
try
{
MapService.MonitorModel objEditMonitor = new MapService.MonitorModel();
//存储编辑视频点
Graphic objEditgraphic = objgraphic;
objEditMonitor.MonitorName = objEditgraphic.Attributes["MonitorName"].ToString();
objEditMonitor.MonitorId = int.Parse(objEditgraphic.Attributes["MonitorId"].ToString());
objEditMonitor.Address = objEditgraphic.Attributes["Address"].ToString();
objEditMonitor.GroupId = int.Parse(objEditgraphic.Attributes["GroupId"].ToString());
objEditMonitor.Memo = objEditgraphic.Attributes["Memo"].ToString();
objEditMonitor.MonitorCode = objEditgraphic.Attributes["MonitorCode"].ToString();
objEditMonitor.MonitorGuid = objEditgraphic.Attributes["MonitorGuid"].ToString();
objEditMonitor.MonitorIp = objEditgraphic.Attributes["MonitorIp"].ToString();
objEditMonitor.MonitorUrl = objEditgraphic.Attributes["MonitorUrl"].ToString();
objEditMonitor.X = objEditgraphic.Attributes["X"].ToString();
objEditMonitor.Y = objEditgraphic.Attributes["Y"].ToString();
objEditMonitor.Towns = objEditgraphic.Attributes["Towns"].ToString();
objEditMonitor.MonitorPort = objEditgraphic.Attributes["MonitorPort"].ToString() == string.Empty ? 80 : int.Parse(objEditgraphic.Attributes["MonitorPort"].ToString());
objEditMonitor.UserCode = objEditgraphic.Attributes["UserCode"].ToString();
objEditMonitor.PassWord = objEditgraphic.Attributes["PassWord"].ToString();
// 弹出新增的视频点的输入框
MonitorEditInfo WinMonitorEdit = new MonitorEditInfo(objEditMonitor);
WinMonitorEdit.FlwinIdentify.IsOpen = false;
// 设置显示的位置
WinMonitorEdit.FlwinIdentify.InitialLeft = 100;
WinMonitorEdit.FlwinIdentify.InitialTop = 70;
// 添加该弹出框
objCurrentPage.LayoutRoot.Children.Add(WinMonitorEdit);
WinMonitorEdit.FlwinIdentify.IsOpen = true;
}
catch (Exception ex)
{
MapService.Service1Client objWcfAgency = SilverlightMap.UtilityClass.WcfAgency.GetMapServer();
objWcfAgency.RecordExceptionToFileAsync(ex);
}
}
objCurrentPage.CurrentToolType = SilverlightMap.MainPage.ToolType.Pan;
break;