private void ShowInfoWinByClickOrTouch(Point screenPnt) { GeneralTransform generalTransform = mainMap.TransformToVisual(Application.Current.MainWindow); Point transformScreenPnt = generalTransform.Transform(screenPnt); foreach (FeatureLayer featureLayer in PublicParams.listFLayer) { if (featureLayer != null && featureLayer.Visible == true) { IEnumerable <Graphic> selectedFLayer = featureLayer.FindGraphicsInHostCoordinates(transformScreenPnt); foreach (Graphic graphic in selectedFLayer) { //mainInfoWindow.Anchor = e.MapPoint; mainInfoWindow.Anchor = graphic.Geometry as MapPoint; mainInfoWindow.IsOpen = true; mainInfoWindow.ContentTemplate = this.FindResource("DT" + graphic.Attributes["Class"].ToString()) as DataTemplate; mainInfoWindow.Content = graphic.Attributes; MapMethods.SendOpenInfoWindow(graphic); return; } } } GraphicsLayer graphicsLayerPoliceCar = MapLayers.GetGraphicsLayerByID(PublicParams.gLayerPoliceCarGPS); if (graphicsLayerPoliceCar != null && graphicsLayerPoliceCar.Visible != false) { IEnumerable <Graphic> selectedGraphics = graphicsLayerPoliceCar.FindGraphicsInHostCoordinates(transformScreenPnt); foreach (Graphic graphic in selectedGraphics) { mainInfoWindow.Anchor = graphic.Geometry as MapPoint; mainInfoWindow.IsOpen = true; mainInfoWindow.ContentTemplate = this.FindResource("DTPoliceCar") as DataTemplate; mainInfoWindow.Content = graphic.Attributes; MapMethods.SendOpenInfoWindow(graphic); return; } } GraphicsLayer graphicsLayerCase = MapLayers.GetGraphicsLayerByID(PublicParams.gLayerCase); if (graphicsLayerCase != null && graphicsLayerCase.Visible == true) { IEnumerable <Graphic> selectedGraphics = graphicsLayerCase.FindGraphicsInHostCoordinates(transformScreenPnt); foreach (Graphic graphic in selectedGraphics) { //LPY 2016-4-14 添加 新案件点周围视频点自动查找和播放 MapLayers.ClearGLayerByID(PublicParams.gLayerSearchCamerasNearCrime);//清空图层 MapMethods.SendClearGraphicsLayerByID(PublicParams.gLayerSearchCamerasNearCrime); ESRI.ArcGIS.Client.Geometry.Geometry geoSearch = MapMethods.GetEllipseGeometry(PublicParams.SearchRadius / (106 * 1000), graphic.Geometry as MapPoint); GeoServHelper gsh = new GeoServHelper(); gsh.ExecuteAsyncQueryForCasePoint(geoSearch, PublicParams.urlCamerasLayer); PublicParams.pubCanvasChild1.BeginStoryboard(App.Current.FindResource("StoryboardForPadCamerasOpen") as System.Windows.Media.Animation.Storyboard); MapMethods.SendOpenPadVideos();//打开视频背景板 Graphic gSearch = new Graphic() { Symbol = PublicParams.symbolSearchCameras, Geometry = geoSearch }; MapLayers.AddGraphicToGLayerByLayerID(gSearch, PublicParams.gLayerSearchCamerasNearCrime); MapMethods.SendGraphicSearchCameras(gSearch); } } }
private void Button_Click(object sender, RoutedEventArgs e) { Button btn = sender as Button; switch (btn.Tag.ToString()) { case "CasePointsOff": //MapMethods.SendSwitchGraphicsLayerByID(PublicParams.gLayerCase, "1"); MapLayers.ShowHideFeatureLayerByID(PublicParams.fLayerCase, true); MapMethods.SendSwitchFeatureLayerByID(PublicParams.fLayerCase, "1"); btn.Style = App.Current.Resources["btnOn"] as Style; btn.Tag = "CasePointsOn"; break; case "CasePointsOn": //MapMethods.SendSwitchGraphicsLayerByID(PublicParams.gLayerCase, "0"); MapLayers.ShowHideFeatureLayerByID(PublicParams.fLayerCase, false); MapMethods.SendSwitchFeatureLayerByID(PublicParams.fLayerCase, "0"); btn.Style = App.Current.Resources["btnOff"] as Style; btn.Tag = "CasePointsOff"; break; case "CaseHeatMapOff": //热力图 MapLayers.ShowHideHeatMapLayerByID(PublicParams.hLayerCase, true); MapMethods.SendSwitchHeatMapLayerByID(PublicParams.hLayerCase, "1"); btn.Style = App.Current.Resources["btnOn"] as Style; btn.Tag = "CaseHeatMapOn"; break; case "CaseHeatMapOn": MapLayers.ShowHideHeatMapLayerByID(PublicParams.hLayerCase, false); MapMethods.SendSwitchHeatMapLayerByID(PublicParams.hLayerCase, "0"); btn.Style = App.Current.Resources["btnOff"] as Style; btn.Tag = "CaseHeatMapOff"; break; case "CaseTodayOff": //当日案件 MapMethods.SendSwitchWin("警情监控", "1"); MapLayers.ShowHideGraphicsLayerByID(PublicParams.gLayerCase, true); MapLayers.ShowHideGraphicsLayerByID(PublicParams.gLayerSearchCamerasNearCrime, true); btn.Style = App.Current.Resources["btnOn"] as Style; btn.Tag = "CaseTodayOn"; break; case "CaseTodayOn": MapMethods.SendSwitchWin("警情监控", "0"); MapLayers.ShowHideGraphicsLayerByID(PublicParams.gLayerCase, false); MapLayers.ShowHideGraphicsLayerByID(PublicParams.gLayerSearchCamerasNearCrime, false); MapLayers.ClearGLayerByID(PublicParams.gLayerSearchCamerasNearCrime); MapMethods.SendClearGraphicsLayerByID(PublicParams.gLayerSearchCamerasNearCrime); btn.Style = App.Current.Resources["btnOff"] as Style; btn.Tag = "CaseTodayOff"; break; case "CaseClusterOff": //聚合图 MapLayers.ShowHideClusterLayerByID(PublicParams.cLayerCase, true); MapMethods.SendSwitchClusterLayerByID(PublicParams.cLayerCase, "1"); btn.Style = App.Current.Resources["btnOn"] as Style; btn.Tag = "CaseClusterOn"; break; case "CaseClusterOn": MapLayers.ShowHideClusterLayerByID(PublicParams.cLayerCase, false); MapMethods.SendSwitchClusterLayerByID(PublicParams.cLayerCase, "0"); btn.Style = App.Current.Resources["btnOff"] as Style; btn.Tag = "CaseClusterOff"; break; default: break; } }