Ejemplo n.º 1
0
 private void SerializeType(BsonWriter bsonWriter, GeoJsonObjectType type)
 {
     bsonWriter.WriteString("type", type.ToString());
 }
Ejemplo n.º 2
0
 private void SerializeType(BsonSerializationContext context, GeoJsonObjectType type)
 {
     context.Writer.WriteString("type", type.ToString());
 }
 public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) {
     var geom = serializer.Deserialize<JToken>(reader);
     GeoJsonObjectType type = serializer.Deserialize<GeoJsonObjectType>(geom.SelectToken("type").CreateReader());
     var coordReader = geom.SelectToken("coordinates").CreateReader();
     switch (type) {
         case GeoJsonObjectType.MultiPolygon:
             return new MultiPolygonJsonConverter().ReadJson(coordReader, typeof(MultiPolygon), geom, serializer);
         case GeoJsonObjectType.Polygon:
             return new PolygonJsonConverter().ReadJson(coordReader, typeof(MultiPolygon), geom, serializer);
         case GeoJsonObjectType.MultiLineString:
             return new MultiLineStringJsonConverter().ReadJson(coordReader, typeof(MultiLineString), geom, serializer);
         case GeoJsonObjectType.LineString:
             return new LineStringJsonConverter().ReadJson(coordReader, typeof(LineString), geom, serializer);
         case GeoJsonObjectType.MultiPoint:
             return new MultiPointJsonConverter().ReadJson(coordReader, typeof(MultiPoint), geom, serializer);
         case GeoJsonObjectType.Point:
             return new PointJsonConverter().ReadJson(coordReader, typeof(Point), geom, serializer);
         default:
             throw new InvalidFormatException(string.Format("Not a valid GeoSon geometry type: {0}", type.ToString()));
     }
 }