4 #include "geos/io/WKBReader.h"
5 #include "geos/io/WKBWriter.h"
33 geos::geom::MultiPolygon &polygon) {
46 geos::io::WKBReader geosReader;
49 getline(inputStream, fileData);
51 QString serialNums = fileData.c_str();
52 foreach (QString serialNum, serialNums.split(
",")) {
57 getline(inputStream, fileData);
59 std::stringstream multiPolygon;
60 multiPolygon << fileData;
61 multiPolygon.seekg(0, std::ios::beg);
64 geosReader.readHEX(multiPolygon));
82 p_serialNumbers.clear();
95 if(p_polygon != NULL) {
112 if(p_polygon != NULL) {
121 void ImageOverlap::Write(std::ostream &outputStream) {
122 geos::io::WKBWriter geosWriter;
126 for(
unsigned int sn = 0; sn < p_serialNumbers.size(); sn++) {
131 serialNums += p_serialNumbers[sn];
136 outputStream << serialNums;
138 geosWriter.writeHEX(*p_polygon, outputStream);
148 for(
unsigned int s = 0; s < p_serialNumbers.size(); ++s) {
149 if(sn == p_serialNumbers[s]) {
150 QString msg =
"Duplicate SN added to [" +
151 QString::fromStdString(p_polygon->toString()) +
"]";
156 p_serialNumbers.push_back(sn);
168 return p_polygon->getArea();
176 for(
int thisSn = 0; thisSn < this->Size(); ++thisSn) {
177 for(
int otherSn = 0; otherSn < other.Size(); ++otherSn) {
178 if(p_serialNumbers[thisSn] == other.p_serialNumbers[otherSn]) {
198 for(
int thisSn = 0; thisSn < Size(); ++thisSn) {
199 if(p_serialNumbers[thisSn] == sn) {