Ejemplo n.º 1
0
        //add polygon to map
        private void addPolygon(PointLatLng point, double radius, Dot2CertValidRegion region)
        {
            if (polygon != null) //기존 polygon이 이미 있으면
            {
                polList.Clear();
                overlay.Polygons.Remove(polygon); //polygon 없앰
            }
            else
            {
                polList = new List <PointLatLng>();
            }

            switch (region.region_type)
            {
            case Dot2GeogarphicRegionType.kDot2GeogarphicRegionType_Circular:
                addCirclePolList(point, radius);
                break;

            case Dot2GeogarphicRegionType.kDot2GeogarphicRegionType_Polygonal:
                addPolyPolList(region);
                break;

            case Dot2GeogarphicRegionType.kDot2GeogarphicRegionType_RectangularSet:
                break;

            case Dot2GeogarphicRegionType.kDot2GeogarphicRegionType_Identified:
                break;
            }
        }
Ejemplo n.º 2
0
        private void mapLoadByCert(Dot2CertValidRegion region)
        {
            if (region.present == false)
            {
                return;
            }

            PointLatLng point;

            switch (region.region_type)
            {
            case Dot2GeogarphicRegionType.kDot2GeogarphicRegionType_Circular:
            {
                double latitude  = (double)region.circular.center.lat / 10000000;
                double longitude = (double)region.circular.center.lon / 10000000;
                point = new PointLatLng(latitude, longitude);         //(y,x)

                setMap(point);
                addMarker(point);
                addPolygon(point, ((double)region.circular.radius / 88400), region);         //0.01-약 885.9m //0.1-약 8.84km //1-약 88km
                map.Overlays.Add(overlay);
                map.Zoom++;
                map.Zoom--;
            }
            break;

            case Dot2GeogarphicRegionType.kDot2GeogarphicRegionType_RectangularSet:
            {
            }
            break;

            case Dot2GeogarphicRegionType.kDot2GeogarphicRegionType_Polygonal:
            {
                point = new PointLatLng(region.polygonal.point_lat[0], region.polygonal.point_lon[0]);
                overlay.Markers.Remove(marker);
                marker = null;

                setMap(point);
                addPolygon(point, 0, region);
                map.Overlays.Add(overlay);
            }
            break;

            case Dot2GeogarphicRegionType.kDot2GeogarphicRegionType_Identified:
            {
                if (polygon != null)         //map에 있는 polygon, marker 없애기
                {
                    polList.Clear();
                    overlay.Polygons.Remove(polygon);
                    polygon = null;

                    overlay.Markers.Remove(marker);
                    marker = null;
                }
            }
            break;

            case Dot2GeogarphicRegionType.kDot2GeogarphicRegionType_Unknown: break;
            }
        }
Ejemplo n.º 3
0
        //다각형 그리기
        private void addPolyPolList(Dot2CertValidRegion region)
        {
            for (int i = 0; i < region.polygonal.point_num; i++)
            {
                PointLatLng point = new PointLatLng(region.polygonal.point_lat[i], region.polygonal.point_lon[i]);
                polList.Add(point);
            }

            //polygon 생성하고 등록
            polygon        = new GMapPolygon(polList, "polList");
            polygon.Stroke = new Pen(Color.Blue, 1);
            polygon.Fill   = new SolidBrush(Color.FromArgb(50, Color.LightSkyBlue));

            overlay.Polygons.Add(polygon);
        }
Ejemplo n.º 4
0
        private void PrintDot2CertValidRegion(Dot2CertValidRegion region)
        {
            this.gridView[0, 3].Value = "유효 지역";
            this.gridView[1, 3].Value = "";

            if (region.present == false)
            {
                return;
            }

            switch (region.region_type)
            {
            case Dot2GeogarphicRegionType.kDot2GeogarphicRegionType_Circular:
            {
                Dot2CircularRegion c = region.circular;
                this.gridView[0, 3].Value += "(circular)";
                this.gridView[1, 3].Value  = "-center lat: " + c.center.lat
                                             + Environment.NewLine + "-center lon: " + c.center.lon
                                             + Environment.NewLine + "-radius: " + c.radius + "m";
            }
            break;

            case Dot2GeogarphicRegionType.kDot2GeogarphicRegionType_RectangularSet:
            {
                Dot2RectangularRegionSet set = region.rectangular;

                this.gridView[0, 3].Value += "(rectangular)";
                this.gridView[1, 3].Value  = "-region num: " + set.region_num + Environment.NewLine;

                for (int i = 0; i < set.region_num; i++)
                {
                    this.gridView[1, 3].Value += "Region[" + i + "] notrh/west lat: " + set.north_west_lat[i] + ", lon: " + set.north_west_lon[i]
                                                 + ", south/east lat: " + set.south_east_lat + ", lon: " + set.south_east_lon;
                    if (i != set.region_num - 1)
                    {
                        this.gridView[1, 3].Value += Environment.NewLine;
                    }
                }
            }
            break;

            case Dot2GeogarphicRegionType.kDot2GeogarphicRegionType_Polygonal:
            {
                Dot2PolygoanlRegion p = region.polygonal;

                this.gridView[0, 3].Value += "(polygonal)";
                this.gridView[1, 3].Value  = "-point num: " + p.point_num + Environment.NewLine;

                for (int i = 0; i < p.point_num; i++)
                {
                    this.gridView[1, 3].Value += "Point[" + i + "] lat: " + p.point_lat[i] + ", lon: " + p.point_lon[i];
                    if (i != p.point_num - 1)
                    {
                        this.gridView[1, 3].Value += Environment.NewLine;
                    }
                }
            }
            break;

            case Dot2GeogarphicRegionType.kDot2GeogarphicRegionType_Identified:
            {
                Dot2IdentifiedRegionSet set = region.identified;

                this.gridView[0, 3].Value += "(identified)";
                this.gridView[1, 3].Value  = "-num :" + set.num + Environment.NewLine;

                for (int i = 0; i < set.num; i++)
                {
                    this.gridView[1, 3].Value += "Region[" + i + "] - Type: " + set.type[i].ToString().Substring(26, set.type[i].ToString().Length - 26)
                                                 + ", Country: " + set.country[i];
                    if (i != set.num - 1)
                    {
                        this.gridView[1, 3].Value += Environment.NewLine;
                    }
                }
            }
            break;

            case Dot2GeogarphicRegionType.kDot2GeogarphicRegionType_Unknown:
                this.gridView[0, 3].Value += "(unknown)";
                break;

            default: break;
            }
        }