Пример #1
0
        void rbServices_Click(object sender, EventArgs e)
        {
            if (_rectangleDrawing == null)
            {
                _rectangleDrawing = new RectangleDrawing((Map)App.Map);
                _rectangleDrawing.RectangleCreated += rectangleDrawing_RectangleCreated;
                _rectangleDrawing.Deactivated      += _rectangleDrawing_Deactivated;
            }

            var currentMode     = CurrentAreaSelectMode;
            var navigationMode  = App.Map.FunctionMode;
            Box rectangleExtent = null;

            if (currentMode != AreaSelectMode.DrawBox)
            {
                CurrentAreaSelectMode = AreaSelectMode.DrawBox;
                _rectangleDrawing.Activate();
                App.Map.FunctionMode = navigationMode;
            }
            else if (_searchSettings.AreaSettings.AreaRectangle != null)
            {
                rectangleExtent = Area.AreaHelper.ReprojectBoxToWGS84(_searchSettings.AreaSettings.AreaRectangle,
                                                                      _searchSettings.AreaSettings.RectangleProjection);
            }

            if (WebServicesDialog.ShowDialog(_searchSettings.WebServicesSettings,
                                             _searchSettings.CatalogSettings,
                                             _searchSettings.KeywordsSettings,
                                             App.GetExtension <IMetadataFetcherPlugin>(), App, _rectangleDrawing
                                             ) == DialogResult.OK)
            {
                UpdateWebServicesCaption();
            }

            _rectangleDrawing.Color = Color.Red;

            if (currentMode != AreaSelectMode.DrawBox)
            {
                DeactivateDrawBox();
                CurrentAreaSelectMode = currentMode;
                App.Map.FunctionMode  = navigationMode;
            }
            else if (rectangleExtent == null)
            {
                _rectangleDrawing.Deactivate();
                do_rbDrawBox_Click();
            }
            else
            {
                _rectangleDrawing.RestoreSearchRectangle(rectangleExtent.XMin, rectangleExtent.YMin, rectangleExtent.XMax, rectangleExtent.YMax);
            }
        }
        private void gridViewWebServices_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex == -1)
            {
                return;
            }

            if (e.ColumnIndex == 7)
            {
                double[] minXY = new double[2];
                double[] maxXY = new double[2];

                //Now convert from Lat-Long to x,y coordinates that App.Map.ViewExtents can use to pan to the correct location.
                WebServiceNode node = (WebServiceNode)gridViewWebServices.Rows[e.RowIndex].Tag;

                minXY = LatLonReproject(node.ServiceBoundingBox.XMin, node.ServiceBoundingBox.YMin);
                maxXY = LatLonReproject(node.ServiceBoundingBox.XMax, node.ServiceBoundingBox.YMax);

                //Get extent where center is desired X,Y coordinate.
                App.Map.ViewExtents.MinX = minXY[0] - (minXY[0] / 20.0);
                App.Map.ViewExtents.MinY = minXY[1] - (minXY[1] / 20.0);
                App.Map.ViewExtents.MaxX = maxXY[0] + (maxXY[0] / 20.0);
                App.Map.ViewExtents.MaxY = maxXY[1] + (maxXY[1] / 20.0);

                Extent ex = App.Map.ViewExtents;

                _rectangleDrawing.Color = Color.Gold;
                _rectangleDrawing.RestoreSearchRectangle(node.ServiceBoundingBox.XMin, node.ServiceBoundingBox.YMin, node.ServiceBoundingBox.XMax, node.ServiceBoundingBox.YMax);

                App.Map.ViewExtents = ex;
            }
            else if (e.ColumnIndex == 8)
            {
                string url;
                if ((url = ((WebServiceNode)gridViewWebServices.Rows[e.RowIndex].Tag).DescriptionUrl) != null)
                {
                    Process.Start(url);
                }
            }
        }