1
1
/**********************************************************************
2
* $Id: WKTReader.cpp,v 1.30 2004/12/08 13:54:43 strk Exp $
2
* $Id: WKTReader.cpp,v 1.30.4.1 2006/04/26 16:29:43 strk Exp $
4
4
* GEOS - Geometry Engine Open Source
5
5
* http://geos.refractions.net
216
218
MultiPoint* WKTReader::readMultiPointText(StringTokenizer *tokenizer) {
217
219
CoordinateSequence *coords = getCoordinates(tokenizer);
218
220
MultiPoint *ret = geometryFactory->createMultiPoint(*coords);
227
WKTReader::readMultiPointText(StringTokenizer *tokenizer)
229
string nextToken=getNextEmptyOrOpener(tokenizer);
230
if (nextToken=="EMPTY") {
231
return geometryFactory->createMultiPoint();
234
int tok = tokenizer->peekNextToken();
236
if ( tok == StringTokenizer::TT_NUMBER )
238
// Try to parse deprecated form "MULTIPOINT(0 0, 1 1)"
239
const CoordinateSequenceFactory* csf = \
240
geometryFactory->getCoordinateSequenceFactory();
241
CoordinateSequence *coords = csf->create(NULL);
244
Coordinate* coord=getPreciseCoordinate(tokenizer);
247
nextToken=getNextCloserOrComma(tokenizer);
248
} while(nextToken == ",");
250
MultiPoint *ret = geometryFactory->createMultiPoint(*coords);
259
else if ( tok == '(' )
261
// Try to parse correct form "MULTIPOINT((0 0), (1 1))"
262
vector<Geometry *> *points=new vector<Geometry *>();
265
Point *point=readPointText(tokenizer);
266
points->push_back(point);
267
nextToken=getNextCloserOrComma(tokenizer);
268
} while(nextToken == ",");
269
return geometryFactory->createMultiPoint(points);
272
for (size_t i=0; i<points->size(); i++)
284
err << "Unexpected token: ";
287
case StringTokenizer::TT_WORD:
288
err << "WORD " << tokenizer->getSVal();
290
case StringTokenizer::TT_NUMBER:
291
err << "NUMBER " << tokenizer->getNVal();
293
case StringTokenizer::TT_EOF:
294
case StringTokenizer::TT_EOL:
311
throw new ParseException(err.str());
224
317
WKTReader::readPolygonText(StringTokenizer *tokenizer)
315
408
/**********************************************************************
316
409
* $Log: WKTReader.cpp,v $
410
* Revision 1.30.4.1 2006/04/26 16:29:43 strk
411
* Fixed WKTReader to accept the correct WKT for MultiPoints
317
413
* Revision 1.30 2004/12/08 13:54:43 strk
318
414
* gcc warnings checked and fixed, general cleanups.