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 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); }