var kmlFile = KmlFile.Load(stream); var root = kmlFile.Root as Kml; if (root?.Feature is Placemark placemark) // Extract coordinates if (placemark.Geometry is Point point) var coord = point.Coordinate; geometries.Add(new KmlGeometry(GeometryType.Point, new[] new Coordinate(coord.Latitude, coord.Longitude, coord.Altitude) )); else if (placemark.Geometry is LineString line) var coords = line.Coordinates.Select(c => new Coordinate(c.Latitude, c.Longitude, c.Altitude)).ToArray(); geometries.Add(new KmlGeometry(GeometryType.Polyline, coords)); else if (placemark.Geometry is Polygon polygon) // Extract outer boundary var coords = polygon.OuterBoundary.LinearRing.Coordinates.Select(c => new Coordinate(c.Latitude, c.Longitude, c.Altitude)).ToArray(); geometries.Add(new KmlGeometry(GeometryType.Polygon, coords));

public ObjectId CreateCogoPoint(double northing, double easting, double elevation, Database db, Transaction tr)

public Point2d ConvertLatLonToDrawing(double lat, double lon, string targetCsCode)

// Transform & import ImportGeometry(kmlData, targetCsCode, db, tr);

// Coordinate system (optional: prompt user) string targetCsCode = GetDrawingCoordinateSystemCode(db);

var sourceCs = "LL84"; // EPSG:4326 alias in Civil 3D var transform = CoordinateSystemService.CreateTransform(sourceCs, targetCsCode); double x, y; transform.TransformPoint(lon, lat, out x, out y); // note: lon → X, lat → Y return new Point2d(x, y);

public List<KmlGeometry> ParseKML(string filepath)

// Parse KML var kmlData = ParseKML(filename);

Mailing List

TOP
0 Items
import kml to autocad civil 3d 2018