コード例 #1
0
ファイル: MapForm.cs プロジェクト: embarassed/TrjTools
        public void drawPoint(IEnumerable <Point> points, PointType type = PointType.Image)
        {
            foreach (Point p in points)
            {
                Point tmp_p = (Point)GeometryTransform.TransformGeometry(p, LayerTools.Wgs84toGoogleMercator.MathTransform, geofactory);
                switch (type)
                {
                case PointType.Image:
                {
                    markerProvider.Geometries.Add(tmp_p);
                    break;
                }

                case PointType.GreenPoint:
                {
                    greenPointProvider.Geometries.Add(tmp_p);
                    break;
                }

                case PointType.RedPoint:
                {
                    redPointProvider.Geometries.Add(tmp_p);
                    break;
                }
                }
                // include(tmp_p);
            }
            RefreshMap();
        }
コード例 #2
0
ファイル: MapForm.cs プロジェクト: embarassed/TrjTools
        /// <summary>
        /// 缩放视图以使e占全图的50%
        /// </summary>
        /// <param name="e"></param>
        private void include(Edge e)
        {
            Envelope box     = mbMap.Map.Envelope;
            Envelope edgeBox = GeometryTransform.TransformBox(e.GetBox(), LayerTools.Wgs84toGoogleMercator.MathTransform);

            include(edgeBox);
        }
コード例 #3
0
ファイル: MapForm.cs プロジェクト: embarassed/TrjTools
 private void drawPoint(Point p)
 {
     p = (Point)GeometryTransform.TransformGeometry(p, LayerTools.Wgs84toGoogleMercator.MathTransform, geofactory);
     markerProvider.Geometries.Add(p);
     // include(p);
     RefreshMap();
 }
コード例 #4
0
ファイル: MapForm.cs プロジェクト: embarassed/TrjTools
 private void drawStdLine(LineString line)
 {
     line = (LineString)GeometryTransform.TransformGeometry(line, LayerTools.Wgs84toGoogleMercator.MathTransform, geofactory);
     stdOutputProvider.Geometries.Add(line);
     stdOutputProvider.Geometries.Add(line.EndPoint);
     include(line);
     RefreshMap();
 }
コード例 #5
0
ファイル: MapForm.cs プロジェクト: embarassed/TrjTools
        private void mbMap_MouseMove(Coordinate worldPos, MouseEventArgs imagePos)
        {
            Point p = new Point(worldPos);

            p = GeometryTransform.TransformGeometry(p, LayerTools.GoogleMercatorToWgs84.MathTransform, geofactory) as Point;
            lbPosition.Text = String.Format("X:{0:#.000000}\nY: {1:#.000000}", p.X, p.Y);
            //lbPosition.Text = String.Format("X:{0}\nY:{1}", worldPos.X, worldPos.Y);
        }
コード例 #6
0
ファイル: MapForm.cs プロジェクト: embarassed/TrjTools
        public void drawStdLine(long edgeId)
        {
            Edge       e    = graph.Edges[edgeId];
            LineString line = (LineString)GeometryTransform.TransformGeometry(e.ToLineString(), LayerTools.Wgs84toGoogleMercator.MathTransform, geofactory);

            stdOutputProvider.Geometries.Add(line);
            stdOutputProvider.Geometries.Add(line.EndPoint);
            include(e);
            RefreshMap();
        }
コード例 #7
0
ファイル: MapForm.cs プロジェクト: embarassed/TrjTools
        private void mbMap_GeometryDefined(IGeometry geometry)
        {
            double length = 0;

            if (geometry.GetType() == typeof(LineString) && ruler)
            {
                geometry = GeometryTransform.TransformGeometry(geometry, LayerTools.GoogleMercatorToWgs84.MathTransform, geofactory);
                length   = LayerTools.GetLength(geometry as LineString);
                MessageBox.Show("Length:" + length + "m.");
                ruler = false;
            }
            else
            {
                outputProvider.Geometries.Add(geometry);
            }
            mbMap.ActiveTool = MapBox.Tools.Pan;
            RefreshMap();
        }
コード例 #8
0
ファイル: MapForm.cs プロジェクト: embarassed/TrjTools
 public void drawMBR(IEnumerable <MBR> mbrs)
 {
     foreach (var mbr in mbrs)
     {
         Coordinate[] coords = new Coordinate[5] {
             mbr.TopLeft.ToCoordinate(),
                  mbr.TopRight.ToCoordinate(),
                  mbr.BottomRight.ToCoordinate(),
                  mbr.BottomLeft.ToCoordinate(),
                  mbr.TopLeft.ToCoordinate()
         };
         LinearRing ring = new LinearRing(coords);
         ring = (LinearRing)GeometryTransform.TransformLinearRing(ring,
                                                                  LayerTools.Wgs84toGoogleMercator.MathTransform, geofactory);
         outputProvider.Geometries.Add(ring);
     }
     mbMap.Refresh();
 }
コード例 #9
0
ファイル: MapForm.cs プロジェクト: embarassed/TrjTools
        private void miSaveGeo_Click(object sender, EventArgs e)
        {
            string fileName = Path.Combine(Constants.DATA_DIR, "beijingTrjPart",
                                           "stat", "parkingRegion.txt");
            StreamWriter sw = new StreamWriter(fileName);

            foreach (var geo in outputProvider.Geometries)
            {
                List <string> points = new List <string>();
                foreach (var coor in geo.Coordinates)
                {
                    Point point = (Point)GeometryTransform.TransformGeometry(new Point(coor),
                                                                             LayerTools.GoogleMercatorToWgs84.MathTransform, geofactory);
                    points.Add(string.Format("{0},{1}", point.Y, point.X));
                }
                sw.WriteLine(String.Join(",", points.ToArray()));
            }
            sw.Close();
        }