예제 #1
0
        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;
            }
        }