コード例 #1
0
        void MapImage_MouseDown(Point worldPos, MouseEventArgs e)
        {
            string strName;

            var geom = GetArealGeom(worldPos, out strName);

            if (geom == null)
            {
                return;
            }
            //show form
            PolygonBufZone frm = new PolygonBufZone {
                ZoneName = strName
            };

            if (frm.ShowDialog() == DialogResult.OK)
            {
                if (m_PivotalProvider == null)
                {
                    return;
                }

                if (m_TargetLayerGuid == Guid.Empty)
                {
                    return;
                }

                var eidssUserBufZoneLayer = (EidssUserBufZoneLayer)UserDbLayersManager.GetUserLayer(m_TargetLayerGuid);

                if (eidssUserBufZoneLayer == null)
                {
                    return;
                }

                var userBufZone = new EidssUserBufZoneLayer.UserBufZone
                {
                    Geometry    = geom,
                    Description = frm.Description,
                    Name        = frm.ZoneName,
                    Center      = new Point(0, 0)
                };

                eidssUserBufZoneLayer.AddNewZone(userBufZone);

                MapImage.Refresh();

                //UserDbFeature userDbFeature = new UserDbFeature(frm.Name, frm.Description, geom);
                //DataProvider.AddUserFeature(userDbFeature);
                //MapImage.Refresh();
            }
        }
コード例 #2
0
        void MapImage_MouseDown(Point worldPos, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                var circleBufZone = new CircleBufZone();
                if (circleBufZone.ShowDialog() == DialogResult.OK)
                {
                    if (m_TargetLayerGuid == Guid.Empty)
                    {
                        return;
                    }

                    var projectedCenter  = worldPos;
                    var projectedBufGeom = GIS_V4.Utils.GeometryUtils.CreateBuffer(projectedCenter, circleBufZone.Radius);
                    //var geom = GeometryTransform.TransformGeometry(projectedBufGeom, CoordinateSystems.SphericalMercatorCS,
                    //                                               CoordinateSystems.WGS84);
                    //var center = GeometryTransform.TransformGeometry(projectedCenter, CoordinateSystems.SphericalMercatorCS,
                    //                                               CoordinateSystems.WGS84);
                    if (m_TargetLayerGuid == Guid.Empty)
                    {
                        return;
                    }

                    var eidssUserBufZoneLayer = (EidssUserBufZoneLayer)UserDbLayersManager.GetUserLayer(m_TargetLayerGuid);

                    if (eidssUserBufZoneLayer == null)
                    {
                        return;
                    }

                    var userBufZone = new EidssUserBufZoneLayer.UserBufZone
                    {
                        Geometry    = projectedBufGeom, //geom,
                        Description = circleBufZone.Description,
                        Name        = circleBufZone.ZoneName,
                        Center      = projectedCenter, //center,
                        Radius      = circleBufZone.Radius
                    };

                    eidssUserBufZoneLayer.AddNewZone(userBufZone);

                    MapImage.Refresh();
                }
                circleBufZone.Dispose();
            }
        }
コード例 #3
0
        void mi_Move_Click(object sender, EventArgs e)
        {
            m_IsMoveMode = true;

            m_LastMovedTargetLayerGuid = m_TargetLayerGuid;
            m_MiMove.Visible           = false;
            m_MiApplyMovement.Visible  = true;
            m_MiCancelMovement.Visible = true;

            m_BufZoneUserLayer  = UserDbLayersManager.GetUserLayer(m_TargetLayerGuid);
            m_BufZoneLayer      = (EidssUserBufZoneLayer)m_BufZoneUserLayer;
            m_BufZoneBeforeEdit = m_BufZoneLayer.FeatureRowToStruct(m_SelectedFeature);

            var wkb = m_SelectedFeature.Geometry.AsBinary();//.AsText();

            m_GeomBeforeEdit = Geometry.GeomFromWKB(wkb);

            SubscribeApplyEvents();

            MapImage.RefreshFromCache();
        }
コード例 #4
0
        void MapImage_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            if (m_ToolPhase == ToolPhase.WaitFirst)
            {
                return;
            }
            //if (DataProvider == null) NoDataProvider();

            //compleate polygon
            if (m_Vertices.Count < 3)
            {
                return;
            }

            m_Vertices.Add(m_Vertices[0]);

            var      linearRing = new LinearRing(m_Vertices);
            Geometry polygon    = new Polygon(linearRing);

            //polygon = GeometryTransform.TransformGeometry(polygon, CoordinateSystems.SphericalMercatorCS,
            //                                                      CoordinateSystems.WGS84);
            m_ToolPhase = ToolPhase.WaitFirst;

            var connectionString = ConnectionManager.DefaultInstance.ConnectionString;
            var connection       = new SqlConnection(connectionString);

            var valid = SqlExecHelper.SqlGeometryValidation(connection, polygon);

            if (!valid)
            {
                MessageForm.Show(Resources.gis_MtIndependentPolygonBufferZone_CheckValidityMsg);
            }
            else
            {
                //show form
                var frm = new PolygonBufZone();
                //frm.ZoneLayer = string.Empty;

                if (frm.ShowDialog() == DialogResult.OK)
                {
                    if (m_TargetLayerGuid == Guid.Empty)
                    {
                        return;
                    }

                    var eidssUserBufZoneLayer =
                        (EidssUserBufZoneLayer)UserDbLayersManager.GetUserLayer(m_TargetLayerGuid);

                    if (eidssUserBufZoneLayer == null)
                    {
                        return;
                    }


                    var userBufZone = new EidssUserBufZoneLayer.UserBufZone
                    {
                        Geometry    = polygon,
                        Description = frm.Description,
                        Name        = frm.ZoneName,
                        //Center = new Point(0, 0)
                    };

                    eidssUserBufZoneLayer.AddNewZone(userBufZone);
                }
            }
            MapImage.Refresh();

            m_Vertices.Clear();
            m_Points.Clear();
            m_LastMousePosition = System.Drawing.Point.Empty;
        }
コード例 #5
0
        void MapImage_MouseDown(Point worldPos, MouseEventArgs e)
        {
            switch (PivotalType)
            {
            case PivotLayerType.Settlements:
                m_PivotalProvider = new EidssSqlServer2008(SystemLayerNames.Settlements);
                break;

            case PivotLayerType.AvrPoints:
                if (Content.AVRLayer != null)
                {
                    m_PivotalProvider = Content.AVRLayer.DataSource;
                }
                break;

            default:
                m_PivotalProvider = null;
                break;
            }

            string strName;
            var    nearestPoint = GetNearestPoint(worldPos, out strName);

            if (nearestPoint == null)
            {
                return;
            }
            //show form
            var frm = new CircleBufZone {
                ZoneName = strName
            };

            if (frm.ShowDialog() == DialogResult.OK)
            {
                if (m_PivotalProvider == null)
                {
                    return;
                }

                var projectedCenter = nearestPoint;
                //var projectedCenter = GeometryTransform.TransformGeometry(nearestPoint, CoordinateSystems.WGS84,
                //                                                          CoordinateSystems.SphericalMercatorCS);
                var projectedBufGeom = GIS_V4.Utils.GeometryUtils.CreateBuffer(projectedCenter, frm.Radius);
                //var geom = GeometryTransform.TransformGeometry(projectedBufGeom, CoordinateSystems.SphericalMercatorCS,
                //                                               CoordinateSystems.WGS84);
                //var center = GeometryTransform.TransformGeometry(projectedCenter, CoordinateSystems.SphericalMercatorCS,
                //                                               CoordinateSystems.WGS84);
                if (m_TargetLayerGuid == Guid.Empty)
                {
                    return;
                }

                var eidssUserBufZoneLayer = (EidssUserBufZoneLayer)UserDbLayersManager.GetUserLayer(m_TargetLayerGuid);

                if (eidssUserBufZoneLayer == null)
                {
                    return;
                }

                var userBufZone = new EidssUserBufZoneLayer.UserBufZone
                {
                    Geometry    = projectedBufGeom, //geom,
                    Description = frm.Description,
                    Name        = frm.ZoneName,
                    Center      = projectedCenter, //center,
                    Radius      = frm.Radius
                };

                eidssUserBufZoneLayer.AddNewZone(userBufZone);

                MapImage.Refresh();
            }
        }