示例#1
0
        public static void Add3DPolygon(LocalVectorDataSource source, Projection projection)
        {
            // Create 3d polygon style and poses
            Polygon3DStyleBuilder polygon3DStyleBuilder = new Polygon3DStyleBuilder();

            polygon3DStyleBuilder.Color = new Color(51, 51, 255, 255);

            MapPosVector polygon3DPoses = new MapPosVector();

            polygon3DPoses.Add(projection.FromWgs84(new MapPos(24.635930, 59.416659)));
            polygon3DPoses.Add(projection.FromWgs84(new MapPos(24.642453, 59.411354)));
            polygon3DPoses.Add(projection.FromWgs84(new MapPos(24.646187, 59.409607)));
            polygon3DPoses.Add(projection.FromWgs84(new MapPos(24.652667, 59.413123)));
            polygon3DPoses.Add(projection.FromWgs84(new MapPos(24.650736, 59.416703)));
            polygon3DPoses.Add(projection.FromWgs84(new MapPos(24.646444, 59.416245)));

            // Create 3d polygon holes poses
            MapPosVector holePositions = new MapPosVector();

            holePositions.Add(projection.FromWgs84(new MapPos(24.643409, 59.411922)));
            holePositions.Add(projection.FromWgs84(new MapPos(24.651207, 59.412896)));
            holePositions.Add(projection.FromWgs84(new MapPos(24.643207, 59.414411)));

            MapPosVectorVector holes = new MapPosVectorVector();

            holes.Add(holePositions);

            // Add to datasource
            Polygon3D polygon = new Polygon3D(polygon3DPoses, holes, polygon3DStyleBuilder.BuildStyle(), 150);

            polygon.SetMetaDataElement("ClickText", new Variant("Polygon 3D"));
            source.Add(polygon);
        }
示例#2
0
        public static void Add2DPolygon(LocalVectorDataSource source, Projection projection)
        {
            LineStyleBuilder lineBuilder = new LineStyleBuilder();

            lineBuilder.Color = new Color(0, 0, 0, 255);             // Black
            lineBuilder.Width = 1.0f;

            // Create polygon style and poses
            PolygonStyleBuilder polygonBuilder = new PolygonStyleBuilder();

            polygonBuilder.Color     = new Color(255, 0, 0, 255);         // Red
            polygonBuilder.LineStyle = lineBuilder.BuildStyle();

            MapPosVector polygonPoses = new MapPosVector();

            polygonPoses.Add(projection.FromWgs84(new MapPos(24.650930, 59.421659)));
            polygonPoses.Add(projection.FromWgs84(new MapPos(24.657453, 59.416354)));
            polygonPoses.Add(projection.FromWgs84(new MapPos(24.661187, 59.414607)));
            polygonPoses.Add(projection.FromWgs84(new MapPos(24.667667, 59.418123)));
            polygonPoses.Add(projection.FromWgs84(new MapPos(24.665736, 59.421703)));
            polygonPoses.Add(projection.FromWgs84(new MapPos(24.661444, 59.421245)));
            polygonPoses.Add(projection.FromWgs84(new MapPos(24.660199, 59.420677)));
            polygonPoses.Add(projection.FromWgs84(new MapPos(24.656552, 59.420175)));
            polygonPoses.Add(projection.FromWgs84(new MapPos(24.654010, 59.421472)));

            // Create 2 polygon holes
            MapPosVector holePoses1 = new MapPosVector();

            holePoses1.Add(projection.FromWgs84(new MapPos(24.658409, 59.420522)));
            holePoses1.Add(projection.FromWgs84(new MapPos(24.662207, 59.418896)));
            holePoses1.Add(projection.FromWgs84(new MapPos(24.662207, 59.417411)));
            holePoses1.Add(projection.FromWgs84(new MapPos(24.659524, 59.417171)));
            holePoses1.Add(projection.FromWgs84(new MapPos(24.657615, 59.419834)));

            MapPosVector holePoses2 = new MapPosVector();

            holePoses2.Add(projection.FromWgs84(new MapPos(24.665640, 59.421243)));
            holePoses2.Add(projection.FromWgs84(new MapPos(24.668923, 59.419463)));
            holePoses2.Add(projection.FromWgs84(new MapPos(24.662893, 59.419365)));

            MapPosVectorVector polygonHoles = new MapPosVectorVector();

            polygonHoles.Add(holePoses1);
            polygonHoles.Add(holePoses2);

            // Add polygon
            Polygon polygon = new Polygon(polygonPoses, polygonHoles, polygonBuilder.BuildStyle());

            polygon.SetMetaDataElement("ClickText", new Variant("Polygon"));
            source.Add(polygon);
        }
        public void ShowAt(double latitude, double longitude, float accuracy)
        {
            var positiion = projection.FromWgs84(new MapPos(longitude, latitude));

            if (focus)
            {
                map.FocusPos = positiion;
                map.Zoom     = 16;
            }

            var builder = new PolygonStyleBuilder();

            // Light transparent apple blue
            builder.Color = new Carto.Graphics.Color(14, 122, 254, 70);
            var borderBuilder = new LineStyleBuilder();

            // Dark transparent apple blue
            borderBuilder.Color = new Carto.Graphics.Color(14, 122, 254, 150);
            borderBuilder.Width = 1;
            builder.LineStyle   = borderBuilder.BuildStyle();

            var points = GetCirclePoints(latitude, longitude, accuracy);

            if (accuracyMarker == null)
            {
                var holes = new MapPosVectorVector();
                accuracyMarker = new Polygon(points, holes, builder.BuildStyle());
                source.Add(accuracyMarker);
            }
            else
            {
                accuracyMarker.Style    = builder.BuildStyle();
                accuracyMarker.Geometry = new PolygonGeometry(points);
            }

            if (userMarker == null)
            {
                var pointBuilder = new PointStyleBuilder();
                // Apple blue
                pointBuilder.Color = new Carto.Graphics.Color(14, 122, 254, 255);
                pointBuilder.Size  = 16.0f;

                userMarker = new Point(positiion, pointBuilder.BuildStyle());
                source.Add(userMarker);
            }
        }
示例#4
0
        public static void Add2DPolygon(LocalVectorDataSource source, Projection projection)
        {
            LineStyleBuilder lineBuilder = new LineStyleBuilder();
            lineBuilder.Color = new Color(0, 0, 0, 255); // Black
            lineBuilder.Width = 1.0f;

            // Create polygon style and poses
            PolygonStyleBuilder polygonBuilder = new PolygonStyleBuilder();
            polygonBuilder.Color = new Color(255, 0, 0, 255); // Red
            polygonBuilder.LineStyle = lineBuilder.BuildStyle();

            MapPosVector polygonPoses = new MapPosVector();
            polygonPoses.Add(projection.FromWgs84(new MapPos(24.650930, 59.421659)));
            polygonPoses.Add(projection.FromWgs84(new MapPos(24.657453, 59.416354)));
            polygonPoses.Add(projection.FromWgs84(new MapPos(24.661187, 59.414607)));
            polygonPoses.Add(projection.FromWgs84(new MapPos(24.667667, 59.418123)));
            polygonPoses.Add(projection.FromWgs84(new MapPos(24.665736, 59.421703)));
            polygonPoses.Add(projection.FromWgs84(new MapPos(24.661444, 59.421245)));
            polygonPoses.Add(projection.FromWgs84(new MapPos(24.660199, 59.420677)));
            polygonPoses.Add(projection.FromWgs84(new MapPos(24.656552, 59.420175)));
            polygonPoses.Add(projection.FromWgs84(new MapPos(24.654010, 59.421472)));

            // Create 2 polygon holes
            MapPosVector holePoses1 = new MapPosVector();
            holePoses1.Add(projection.FromWgs84(new MapPos(24.658409, 59.420522)));
            holePoses1.Add(projection.FromWgs84(new MapPos(24.662207, 59.418896)));
            holePoses1.Add(projection.FromWgs84(new MapPos(24.662207, 59.417411)));
            holePoses1.Add(projection.FromWgs84(new MapPos(24.659524, 59.417171)));
            holePoses1.Add(projection.FromWgs84(new MapPos(24.657615, 59.419834)));

            MapPosVector holePoses2 = new MapPosVector();
            holePoses2.Add(projection.FromWgs84(new MapPos(24.665640, 59.421243)));
            holePoses2.Add(projection.FromWgs84(new MapPos(24.668923, 59.419463)));
            holePoses2.Add(projection.FromWgs84(new MapPos(24.662893, 59.419365)));

            MapPosVectorVector polygonHoles = new MapPosVectorVector();
            polygonHoles.Add(holePoses1);
            polygonHoles.Add(holePoses2);

            // Add polygon
            Polygon polygon = new Polygon(polygonPoses, polygonHoles, polygonBuilder.BuildStyle());
            polygon.SetMetaDataElement("ClickText", new Variant("Polygon"));
            source.Add(polygon);
        }
示例#5
0
        public static void Add3DPolygon(LocalVectorDataSource source, Projection projection)
        {
            // Create 3d polygon style and poses
            Polygon3DStyleBuilder polygon3DStyleBuilder = new Polygon3DStyleBuilder();
            polygon3DStyleBuilder.Color = new Color(51, 51, 255, 255);

            MapPosVector polygon3DPoses = new MapPosVector();
            polygon3DPoses.Add(projection.FromWgs84(new MapPos(24.635930, 59.416659)));
            polygon3DPoses.Add(projection.FromWgs84(new MapPos(24.642453, 59.411354)));
            polygon3DPoses.Add(projection.FromWgs84(new MapPos(24.646187, 59.409607)));
            polygon3DPoses.Add(projection.FromWgs84(new MapPos(24.652667, 59.413123)));
            polygon3DPoses.Add(projection.FromWgs84(new MapPos(24.650736, 59.416703)));
            polygon3DPoses.Add(projection.FromWgs84(new MapPos(24.646444, 59.416245)));

            // Create 3d polygon holes poses
            MapPosVector holePositions = new MapPosVector();
            holePositions.Add(projection.FromWgs84(new MapPos(24.643409, 59.411922)));
            holePositions.Add(projection.FromWgs84(new MapPos(24.651207, 59.412896)));
            holePositions.Add(projection.FromWgs84(new MapPos(24.643207, 59.414411)));

            MapPosVectorVector holes = new MapPosVectorVector();
            holes.Add(holePositions);

            // Add to datasource
            Polygon3D polygon = new Polygon3D(polygon3DPoses, holes, polygon3DStyleBuilder.BuildStyle(), 150);
            polygon.SetMetaDataElement("ClickText", new Variant("Polygon 3D"));
            source.Add(polygon);
        }