예제 #1
0
        private bool TryParseCoordinateArrayArrayArray(JsonArray coordinates, out Coordinate[][][] result)
        {
            result = null;
            if (coordinates == null)
            {
                return(false);
            }

            var valid = coordinates.All(x => x is JsonArray);

            if (!valid)
            {
                return(false);
            }

            var tempResult = new Coordinate[coordinates.Count][][];

            for (var index = 0; index < coordinates.Count; index++)
            {
                if (!TryParseCoordinateArrayArray((JsonArray)coordinates[index], out tempResult[index]))
                {
                    return(false);
                }
            }
            result = tempResult;
            return(true);
        }
예제 #2
0
        private bool TryParseCoordinate(JsonArray coordinates, out Coordinate result)
        {
            result = null;
            if (coordinates == null || coordinates.Count < 2)
            {
                return(false);
            }

            var valid = coordinates.All(x => x is double || x is long);

            if (!valid)
            {
                return(false);
            }

            if (coordinates.Count == 2)
            {
                result = new Coordinate(Convert.ToDouble(coordinates[1]), Convert.ToDouble(coordinates[0]));
            }
            else if (coordinates.Count == 3)
            {
                result = new CoordinateZ(Convert.ToDouble(coordinates[1]), Convert.ToDouble(coordinates[0]), Convert.ToDouble(coordinates[2]));
            }
            else
            {
                result = new CoordinateZM(Convert.ToDouble(coordinates[1]), Convert.ToDouble(coordinates[0]), Convert.ToDouble(coordinates[2]), Convert.ToDouble(coordinates[3]));
            }
            return(true);
        }
예제 #3
0
        private bool TryParseCoordinate(JsonArray coordinates, out Coordinate result)
        {
            result = null;
            if (coordinates == null || coordinates.Count < 2)
                return false;

            var valid = coordinates.All(x => x is double || x is long);
            if (!valid)
                return false;

            if (coordinates.Count == 2)
                result = new Coordinate(Convert.ToDouble(coordinates[1]), Convert.ToDouble(coordinates[0]));
            else if (coordinates.Count == 3)
                result = new CoordinateZ(Convert.ToDouble(coordinates[1]), Convert.ToDouble(coordinates[0]), Convert.ToDouble(coordinates[2]));
            else
                result = new CoordinateZM(Convert.ToDouble(coordinates[1]), Convert.ToDouble(coordinates[0]), Convert.ToDouble(coordinates[2]), Convert.ToDouble(coordinates[3]));
            return true;
        }
예제 #4
0
        private bool TryParseCoordinateArray(JsonArray coordinates, out Coordinate[] result)
        {
            result = null;
            if (coordinates == null)
                return false;

            var valid = coordinates.All(x => x is JsonArray);
            if (!valid)
                return false;

            var tempResult = new Coordinate[coordinates.Count];
            for (var index = 0; index < coordinates.Count; index++)
            {
                if (!TryParseCoordinate((JsonArray)coordinates[index], out tempResult[index]))
                    return false;
            }
            result = tempResult;
            return true;
        }