public static function fromString($linestrings, $linestrings_separator = ";", $points_separator = ",", $coords_separator = " ")
    {
        $separators = [$linestrings_separator, $points_separator, $coords_separator];
        if(sizeof($separators) != sizeof(array_unique($separators)))
            throw new GeoSpatialException("Error: separators must be different");

        $parsed_linestrings = array_map(function($linestring) use ($points_separator, $coords_separator){
            return LineString::fromString($linestring, $points_separator, $coords_separator);
        }, explode($linestrings_separator, trim($linestrings)));

        return new static($parsed_linestrings);
    }