class UserGeometry alias :read_attribute_for_serialization :send def initialize(json_latlngs) @json_latlngs = json_latlngs end def value to_geo_json(@json_latlngs) end def type_de_champ { id: -1, libelle: 'user_geometry', type_champ: 'user_geometry', order_place: -1, descripton: '' } end private def to_geo_json(json_latlngs) json = JSON.parse(json_latlngs) coordinates = json.map do |lat_longs| outbounds = lat_longs.map do |lat_long| [lat_long['lng'], lat_long['lat']] end [outbounds] end { type: 'MultiPolygon', coordinates: coordinates } end end