From 5f999cec1a6882b47c6657882b153ba6da0ed62e Mon Sep 17 00:00:00 2001 From: codekaizen Date: Fri, 18 Jan 2008 23:22:11 +0000 Subject: [PATCH] Getting SharpMap.SimpleGeometries to build. Project file reorganization to use Common.msbuild during solution for using project references or binary references. Updating to use WktEncoder and WkbEncoder --- Common.msbuild | 15 + .../CoordinateSystemFactory.cs | 132 +++++++- Proj.Net/ProjNet/ProjNet.csproj | 71 +++-- ...ons.cs => BoundingBoxSpatialOperations.cs} | 32 +- ...ions.cs => BoundingBoxSpatialRelations.cs} | 43 +-- SharpMap.SimpleGeometries/Curve.cs | 3 +- SharpMap.SimpleGeometries/Extents.cs | 223 +++++++++++-- .../FakeSpatialOperations.cs | 25 -- .../Geometries3D/Point3D.cs | 19 +- SharpMap.SimpleGeometries/Geometry.cs | 46 ++- .../GeometryCollection.cs | 3 +- .../GeometryCollection`1.cs | 5 + SharpMap.SimpleGeometries/IGeometry.cs | 210 ------------ .../IGeometryCollection.cs | 41 --- SharpMap.SimpleGeometries/LineString.cs | 20 +- SharpMap.SimpleGeometries/LinearRing.cs | 301 ++++++++++-------- SharpMap.SimpleGeometries/MultiCurve.cs | 5 +- SharpMap.SimpleGeometries/MultiLineString.cs | 20 +- SharpMap.SimpleGeometries/MultiPoint.cs | 26 +- SharpMap.SimpleGeometries/MultiPolygon.cs | 19 +- SharpMap.SimpleGeometries/MultiSurface.cs | 5 +- SharpMap.SimpleGeometries/Point.cs | 18 +- SharpMap.SimpleGeometries/Polygon.cs | 101 ++++-- .../SharpMap.SimpleGeometries.csproj | 73 ++++- SharpMap.SimpleGeometries/Surface.cs | 7 +- .../Rendering/BasicGeometryRenderer2DTests.cs | 3 +- SharpMap.Tests/SharpMap.Tests.csproj | 91 ++++-- .../BufferedCoordinateSequenceFactory.cs | 93 ++++++ .../GeometryProvider/GeometryProvider.cs | 4 +- .../Providers/Shapefile/ShapeFileProvider.cs | 2 +- SharpMap/SharpMap.csproj | 79 +++-- SharpMapV2_2008.sln | 67 +--- 32 files changed, 1073 insertions(+), 729 deletions(-) create mode 100644 Common.msbuild rename SharpMap.SimpleGeometries/{BoundingBoxOperations.cs => BoundingBoxSpatialOperations.cs} (72%) rename SharpMap.SimpleGeometries/{SpatialRelations.cs => BoundingBoxSpatialRelations.cs} (76%) delete mode 100644 SharpMap.SimpleGeometries/FakeSpatialOperations.cs delete mode 100644 SharpMap.SimpleGeometries/IGeometry.cs delete mode 100644 SharpMap.SimpleGeometries/IGeometryCollection.cs create mode 100644 SharpMap/Coordinates/BufferedCoordinateSequenceFactory.cs diff --git a/Common.msbuild b/Common.msbuild new file mode 100644 index 00000000..3cee60d2 --- /dev/null +++ b/Common.msbuild @@ -0,0 +1,15 @@ + + + + false + + + false + + + false + + + false + + \ No newline at end of file diff --git a/Proj.Net/ProjNet/CoordinateSystems/CoordinateSystemFactory.cs b/Proj.Net/ProjNet/CoordinateSystems/CoordinateSystemFactory.cs index dbe7d659..85e76ea1 100644 --- a/Proj.Net/ProjNet/CoordinateSystems/CoordinateSystemFactory.cs +++ b/Proj.Net/ProjNet/CoordinateSystems/CoordinateSystemFactory.cs @@ -91,7 +91,7 @@ public ICoordinateSystem CreateFromXml(String xml) /// public ICoordinateSystem CreateFromWkt(String Wkt) { - return CoordinateSystemWktReader.Parse(Wkt, this) as ICoordinateSystem; + return WktEncoder.ToCoordinateSystemInfo(Wkt, this) as ICoordinateSystem; } /// @@ -704,9 +704,135 @@ public IVerticalDatum CreateVerticalDatum(DatumType datumType, String name, Stri throw new NotImplementedException(); } - IGeocentricCoordinateSystem ICoordinateSystemFactory.CreateWgs84CoordinateSystem() + #endregion + + #region ICoordinateSystemFactory Members + + + public IAngularUnit CreateAngularUnit(CommonAngularUnits angularUnitType) { - throw new NotImplementedException(); + switch (angularUnitType) + { + case CommonAngularUnits.Radian: + return AngularUnit.Radian; + case CommonAngularUnits.Degree: + return AngularUnit.Degrees; + case CommonAngularUnits.Grad: + return AngularUnit.Grad; + case CommonAngularUnits.Gon: + return AngularUnit.Gon; + default: + throw new ArgumentException("Unknown angular unit: " + angularUnitType); + } + } + + public IEllipsoid CreateEllipsoid(CommonEllipsoids ellipsoidType) + { + switch (ellipsoidType) + { + case CommonEllipsoids.Wgs84: + return Ellipsoid.Wgs84; + case CommonEllipsoids.Wgs72: + return Ellipsoid.Wgs72; + case CommonEllipsoids.Grs80: + return Ellipsoid.Grs80; + case CommonEllipsoids.International1924: + return Ellipsoid.International1924; + case CommonEllipsoids.Clarke1880: + return Ellipsoid.Clarke1880; + case CommonEllipsoids.Clarke1866: + return Ellipsoid.Clarke1866; + case CommonEllipsoids.Grs80AuthalicSphere: + return Ellipsoid.Sphere; + default: + throw new ArgumentException("Unknown ellipsoid: " + ellipsoidType); + } + } + + public IGeographicCoordinateSystem CreateGeographicCoordinateSystem(CommonGeographicCoordinateSystems coordSystemType) + { + switch (coordSystemType) + { + case CommonGeographicCoordinateSystems.Wgs84: + return GeographicCoordinateSystem.Wgs84; + default: + throw new ArgumentException( + "Unknown geographic coordinate system: " + coordSystemType); + } + } + + public IHorizontalDatum CreateHorizontalDatum(CommonHorizontalDatums datumType) + { + switch (datumType) + { + case CommonHorizontalDatums.Wgs84: + return HorizontalDatum.Wgs84; + case CommonHorizontalDatums.Wgs72: + return HorizontalDatum.Wgs72; + case CommonHorizontalDatums.Etrf89: + return HorizontalDatum.Etrf89; + case CommonHorizontalDatums.ED50: + return HorizontalDatum.ED50; + case CommonHorizontalDatums.Nad27: + case CommonHorizontalDatums.Nad83: + case CommonHorizontalDatums.Harn: + default: + throw new ArgumentException("Unknown datum: " + datumType); + } + } + + public ILinearUnit CreateLinearUnit(CommonLinearUnits linearUnitType) + { + switch (linearUnitType) + { + case CommonLinearUnits.Meter: + return LinearUnit.Meter; + case CommonLinearUnits.USSurveyFoot: + return LinearUnit.USSurveyFoot; + case CommonLinearUnits.NauticalMile: + return LinearUnit.NauticalMile; + case CommonLinearUnits.ClarkesFoot: + return LinearUnit.ClarkesFoot; + case CommonLinearUnits.InternationalFoot: + default: + throw new ArgumentException("Unknown linear unit: " + linearUnitType); + } + } + + public IPrimeMeridian CreatePrimeMeridian(CommonPrimeMeridians primeMeridian) + { + switch (primeMeridian) + { + case CommonPrimeMeridians.Greenwich: + return PrimeMeridian.Greenwich; + case CommonPrimeMeridians.Lisbon: + return PrimeMeridian.Lisbon; + case CommonPrimeMeridians.Paris: + return PrimeMeridian.Paris; + case CommonPrimeMeridians.Bogota: + return PrimeMeridian.Bogota; + case CommonPrimeMeridians.Madrid: + return PrimeMeridian.Madrid; + case CommonPrimeMeridians.Rome: + return PrimeMeridian.Rome; + case CommonPrimeMeridians.Bern: + return PrimeMeridian.Bern; + case CommonPrimeMeridians.Jakarta: + return PrimeMeridian.Jakarta; + case CommonPrimeMeridians.Ferro: + return PrimeMeridian.Ferro; + case CommonPrimeMeridians.Brussels: + return PrimeMeridian.Brussels; + case CommonPrimeMeridians.Stockholm: + return PrimeMeridian.Stockholm; + case CommonPrimeMeridians.Athens: + return PrimeMeridian.Athens; + case CommonPrimeMeridians.Oslo: + return PrimeMeridian.Oslo; + case CommonPrimeMeridians.Antwerp: + default: + throw new ArgumentException("Unknown prime meridian: " + primeMeridian); + } } #endregion diff --git a/Proj.Net/ProjNet/ProjNet.csproj b/Proj.Net/ProjNet/ProjNet.csproj index a8474fdd..d4e195de 100644 --- a/Proj.Net/ProjNet/ProjNet.csproj +++ b/Proj.Net/ProjNet/ProjNet.csproj @@ -1,4 +1,8 @@  + + + false + Debug AnyCPU @@ -11,18 +15,6 @@ ProjNet true projnetkey.snk - - - - - - - - - - - - 2.0 @@ -107,19 +99,48 @@ - - - False - ..\..\ExternalReferences\$(Configuration)\NPack.dll - - - False - ..\..\ExternalReferences\$(Configuration)\GeoAPI.dll - - - - + + + + + False + ..\ExternalReferences\$(Configuration)\NPack.dll + + + False + ..\ExternalReferences\$(Configuration)\GeoAPI.dll + + + + + + + False + ..\ExternalReferences\$(Configuration)\NPack.dll + + + + + {FFB69466-79DE-466A-ADA7-5C47C5C5CA3A} + GeoAPINoTFS + + + + + + + + + + + + + + + + + +