25 #include <geos/geom/GeometryFactory.h>
26 #include <geos/geom/MultiPolygon.h>
27 #include <geos/geom/CoordinateSequence.h>
61 class UniversalGroundMap;
64 static geos::geom::GeometryFactory globalFactory;
137 const geos::geom::MultiPolygon &lonLatPoly,
TProjection *proj);
140 const geos::geom::MultiPolygon &xYPoly,
TProjection *proj);
146 static geos::geom::MultiPolygon *
CopyMultiPolygon(
const geos::geom::MultiPolygon *mpolygon);
147 static geos::geom::MultiPolygon *
CopyMultiPolygon(
const geos::geom::MultiPolygon &mpolygon);
149 static geos::geom::MultiPolygon *
Despike(
const geos::geom::Geometry *geom);
150 static geos::geom::MultiPolygon *
Despike(
const geos::geom::MultiPolygon *multiPoly);
151 static geos::geom::LinearRing *
Despike(
const geos::geom::LineString *linearRing);
154 static geos::geom::MultiPolygon *
To180(geos::geom::MultiPolygon *poly360);
157 static QString
ToGML(
const geos::geom::MultiPolygon *mpolygon,
158 QString idString = QString(
"0"),
159 QString schema = QString(
""));
165 static double Thickness(
const geos::geom::MultiPolygon *mpolygon);
167 static geos::geom::Geometry *
Intersect(
const geos::geom::Geometry *geom1,
168 const geos::geom::Geometry *geom2);
169 static geos::geom::Geometry *
Difference(
const geos::geom::Geometry *geom1,
170 const geos::geom::Geometry *geom2);
172 static geos::geom::MultiPolygon *
MakeMultiPolygon(
const geos::geom::Geometry *geom);
176 static bool Equal(
const geos::geom::MultiPolygon *poly1,
177 const geos::geom::MultiPolygon *poly2);
178 static bool Equal(
const geos::geom::Polygon *poly1,
const geos::geom::Polygon *poly2);
179 static bool Equal(
const geos::geom::LineString *lineString1,
180 const geos::geom::LineString *lineString2);
181 static bool Equal(
const geos::geom::Coordinate &coord1,
const geos::geom::Coordinate &coord2);
182 static bool Equal(
const double d1,
const double d2);
184 static geos::geom::MultiPolygon *FixSeam(
const geos::geom::MultiPolygon *poly);
185 static geos::geom::MultiPolygon *FixSeam(
const geos::geom::Polygon *polyA,
186 const geos::geom::Polygon *polyB);
188 static geos::geom::Geometry *
ReducePrecision(
const geos::geom::Geometry *geom,
189 unsigned int precision);
190 static geos::geom::MultiPolygon *
ReducePrecision(
const geos::geom::MultiPolygon *poly,
191 unsigned int precision);
192 static geos::geom::Polygon *
ReducePrecision(
const geos::geom::Polygon *poly,
193 unsigned int precision);
194 static geos::geom::LinearRing *
ReducePrecision(
const geos::geom::LinearRing *ring,
195 unsigned int precision);
196 static geos::geom::Coordinate *
ReducePrecision(
const geos::geom::Coordinate *coord,
197 unsigned int precision);
200 static geos::geom::MultiPolygon *FixPolePolygon(
const geos::geom::MultiPolygon *polePolygon,
202 static geos::geom::MultiPolygon *
SplitPolygonOn360(
const geos::geom::Polygon *inPoly);
207 static bool IsSpiked(geos::geom::Coordinate first,
208 geos::geom::Coordinate middle, geos::geom::Coordinate last);
210 static bool TestSpiked(geos::geom::Coordinate first, geos::geom::Coordinate middle,
211 geos::geom::Coordinate last);
213 static geos::geom::Geometry *
FixGeometry(
const geos::geom::Geometry *geom);
214 static geos::geom::MultiPolygon *
FixGeometry(
const geos::geom::MultiPolygon *poly);
215 static geos::geom::Polygon *
FixGeometry(
const geos::geom::Polygon *poly);
216 static geos::geom::LinearRing *
FixGeometry(
const geos::geom::LinearRing *ring);
218 static geos::geom::Geometry *Operate(
const geos::geom::Geometry *geom1,
219 const geos::geom::Geometry *geom2,
unsigned int opcode);
223 geos::geom::MultiPolygon *p_polygons;
Base class for Map TProjections.