/// <inheritdoc /> public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader.TokenType == JsonToken.Null) { return(null); } if (reader.TokenType != JsonToken.StartObject) { return(null); } JObject obj = JObject.Load(reader); string type = obj.Value <string>("type"); switch (type?.ToLower()) { case "feature": return(GeoJsonFeature.Parse(obj)); case "featurecollection": return(GeoJsonFeatureCollection.Parse(obj)); case "point": return(GeoJsonPoint.Parse(obj)); case "multipoint": return(GeoJsonMultiPoint.Parse(obj)); case "linestring": return(GeoJsonLineString.Parse(obj)); case "multilinestring": return(GeoJsonMultiLineString.Parse(obj)); case "polygon": return(GeoJsonPolygon.Parse(obj)); case "multipolygon": return(GeoJsonMultiPolygon.Parse(obj)); default: if (objectType == typeof(GeoJsonProperties)) { return(ReadJsonProperties(reader)); } throw new GeoJsonParseException($"Unknown shape: {type}", obj); } }
public void Parse1() { GeoJsonMultiLineString multiLineString = GeoJsonMultiLineString.Parse(Json1); Assert1(multiLineString); }