public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var o = serializer.Deserialize<JArray>(reader);
            var polygonConverter = new PolygonJsonConverter();
            var polygons =
                o.Select(
                    polygon => polygonConverter.ReadJson(polygon.CreateReader(), typeof(Polygon), polygon, serializer)).Cast<Polygon>().ToList();

            return new MultiPolygon(polygons);
        }
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var o = serializer.Deserialize <JArray>(reader);
            var polygonConverter = new PolygonJsonConverter();
            var polygons         =
                o.Select(
                    polygon => polygonConverter.ReadJson(polygon.CreateReader(), typeof(Polygon), polygon, serializer)).Cast <Polygon>().ToList();

            return(new MultiPolygon(polygons));
        }