示例#1
0
        private static string GetNextCloserOrComma(WktStreamTokenizer tokenizer)
        {
            tokenizer.NextToken();
            string nextWord = tokenizer.GetStringValue();

            if (nextWord == "," || nextWord == ")")
            {
                return(nextWord);
            }
            throw new Exception("Expected ')' or ',' but encountered '" + nextWord + "'");
        }
        private static string GetNextEmptyOrOpener(WktStreamTokenizer tokenizer)
        {
            tokenizer.NextToken();
            string nextWord = tokenizer.GetStringValue();

            if (nextWord == "EMPTY" || nextWord == "(")
            {
                return(nextWord);
            }

            throw new Exception("Expected 'EMPTY' or '(' but encountered '" + nextWord + "'");
        }
        private static GeoJSONObject ReadGeometryTaggedText(WktStreamTokenizer tokenizer)
        {
            tokenizer.NextToken();
            var           type     = tokenizer.GetStringValue().ToUpper();
            GeoJSONObject geometry = null;

            switch (type)
            {
            case "POINT":
                geometry = ReadPointText(tokenizer);
                break;

            case "LINESTRING":
                geometry = ReadLineStringText(tokenizer);
                break;

            /*case "MULTIPOINT":
             *      geometry = ReadMultiPointText(tokenizer);
             *      break;*/
            /*case "MULTILINESTRING":
             *      geometry = ReadMultiLineStringText(tokenizer);
             *      break;*/
            case "POLYGON":
                geometry = ReadPolygonText(tokenizer);
                break;

            case "MULTIPOLYGON":
                geometry = ReadMultiPolygonText(tokenizer);
                //geometry = ReadMultiPolygonText(tokenizer);
                break;

            /*case "GEOMETRYCOLLECTION":
             *      geometry = ReadGeometryCollectionText(tokenizer);
             *      break;*/
            default:
                throw new Exception(String.Format(new CultureInfo("en-US", false).NumberFormat, "Geometrytype '{0}' is not supported.",
                                                  type));
            }
            return(geometry);
        }